-- SCHEMA: dbo
---------------------------------------------
-- TABLES
---------------------------------------------
---------------------------------------------
-- dbo.AMAssumptionView ------------------
---------------------------------------------
CREATE TABLE [dbo].[AMAssumptionView] (
[AssumptionViewGUID] uniqueidentifier NOT NULL,
[AssumptionGroupGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[ColumnWidths] varchar(8000) NOT NULL,
[AssumptionJoinDataGUID] uniqueidentifier NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[IsDistributionModeActive] bit NOT NULL,
[DistributionInfo] xml NOT NULL,
[ProviderGUID] uniqueidentifier NOT NULL,
[CreatedDate] datetime NOT NULL,
[CreatedBy] uniqueidentifier NOT NULL,
[LastUsedDate] datetime NOT NULL,
PRIMARY KEY ([AssumptionViewGUID])
);
GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_CreatedBy] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CreatedBy]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_LastUsedDate] DEFAULT (getdate()) FOR [LastUsedDate]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_Table_1_AssumptionViewGUID] DEFAULT (newid()) FOR [AssumptionViewGUID]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_ASSUMPTIONGROUPGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssumptionGroupGUID]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_COLUMNWIDTHS] DEFAULT ('') FOR [ColumnWidths]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_ASSUMPTIONCUBEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssumptionJoinDataGUID]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_FOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_ISDISTRIBUTIONMODEACTIVE] DEFAULT ((0)) FOR [IsDistributionModeActive]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_DISTRIBUTIONINFOXML] DEFAULT ('') FOR [DistributionInfo]; GO
ALTER TABLE [dbo].[AMAssumptionView] ADD CONSTRAINT [DF_AMAssumptionView_PROVIDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ProviderGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.AMCalculatedColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[AMCalculatedColumn] (
[CalculatedColumnGUID] uniqueidentifier NOT NULL,
[AssumptionViewGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[ColumnBase] nvarchar(4000) NOT NULL,
[ColumnCompare] nvarchar(4000) NOT NULL,
[Type] int NOT NULL,
[IsEditable] bit NOT NULL,
[Position] int NOT NULL,
PRIMARY KEY ([CalculatedColumnGUID])
);
GO
ALTER TABLE [dbo].[AMCalculatedColumn] ADD CONSTRAINT [DF_AMCalculatedColumn_CALCULATEDCOLUMNGUID] DEFAULT (newid()) FOR [CalculatedColumnGUID]; GO
ALTER TABLE [dbo].[AMCalculatedColumn] ADD CONSTRAINT [DF_AMCalculatedColumn_ASSUMPTIONVIEWGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssumptionViewGUID]; GO
ALTER TABLE [dbo].[AMCalculatedColumn] ADD CONSTRAINT [DF_AMCalculatedColumn_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[AMCalculatedColumn] ADD CONSTRAINT [DF_AMCalculatedColumn_COLUMNBASE] DEFAULT ('') FOR [ColumnBase]; GO
ALTER TABLE [dbo].[AMCalculatedColumn] ADD CONSTRAINT [DF_AMCalculatedColumn_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[AMCalculatedColumn] ADD CONSTRAINT [DF_AMCalculatedColumn_ISEDITABLE] DEFAULT ((0)) FOR [IsEditable]; GO
ALTER TABLE [dbo].[AMCalculatedColumn] ADD CONSTRAINT [DF_AMCalculatedColumn_POSITION] DEFAULT ((0)) FOR [Position]; GO
---------------------------------------------
---------------------------------------------
-- dbo.AMCorrelationGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[AMCorrelationGroup] (
[CorrelationGroupGUID] uniqueidentifier NOT NULL,
[AssumptionGroupGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[IsGlobal] bit NOT NULL,
[MembersXML] xml NOT NULL,
PRIMARY KEY ([CorrelationGroupGUID])
);
GO
ALTER TABLE [dbo].[AMCorrelationGroup] ADD CONSTRAINT [DF_AMCorrelationGroup_CorrelationGroupGUID] DEFAULT (newid()) FOR [CorrelationGroupGUID]; GO
ALTER TABLE [dbo].[AMCorrelationGroup] ADD CONSTRAINT [DF_AMCorrelationGroup_AssumptionGroupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssumptionGroupGUID]; GO
ALTER TABLE [dbo].[AMCorrelationGroup] ADD CONSTRAINT [DF_AMCorrelationGroup_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[AMCorrelationGroup] ADD CONSTRAINT [DF_AMCorrelationGroup_IsGlobal] DEFAULT ((0)) FOR [IsGlobal]; GO
ALTER TABLE [dbo].[AMCorrelationGroup] ADD CONSTRAINT [DF_AMCorrelationGroup_MembersXML] DEFAULT ('') FOR [MembersXML]; GO
---------------------------------------------
---------------------------------------------
-- dbo.AMDimensionLevelBinding ------------------
---------------------------------------------
CREATE TABLE [dbo].[AMDimensionLevelBinding] (
[DimensionLevelBindingGUID] uniqueidentifier NOT NULL,
[DimensionSetupGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[LevelName] nvarchar(450) NOT NULL,
[LevelIndex] int NOT NULL,
[DisplayOrder] int NOT NULL,
[IsBound] bit NOT NULL,
PRIMARY KEY ([DimensionLevelBindingGUID])
);
GO
ALTER TABLE [dbo].[AMDimensionLevelBinding] ADD CONSTRAINT [FK_AMDimensionLevelBinding_AMDimensionSetup] FOREIGN KEY ([DimensionSetupGUID]) REFERENCES [dbo].[AMDimensionSetup] ([DimensionSetupGUID]); GO
ALTER TABLE [dbo].[AMDimensionLevelBinding] ADD CONSTRAINT [DF_AMDimensionLevelBinding_DIMENSIONLEVELBINDINGGUID] DEFAULT (newid()) FOR [DimensionLevelBindingGUID]; GO
ALTER TABLE [dbo].[AMDimensionLevelBinding] ADD CONSTRAINT [DF_AMDimensionLevelBinding_ASSUMPTIONVIEWGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionSetupGUID]; GO
ALTER TABLE [dbo].[AMDimensionLevelBinding] ADD CONSTRAINT [DF_AMDimensionLevelBinding_DIMENSIONGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[AMDimensionLevelBinding] ADD CONSTRAINT [DF_AMDimensionLevelBinding_LEVELNAME] DEFAULT ('') FOR [LevelName]; GO
ALTER TABLE [dbo].[AMDimensionLevelBinding] ADD CONSTRAINT [DF_AMDimensionLevelBinding_LEVELINDEX] DEFAULT ((0)) FOR [LevelIndex]; GO
ALTER TABLE [dbo].[AMDimensionLevelBinding] ADD CONSTRAINT [DF_AMDimensionLevelBinding_DISPLAYORDER] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[AMDimensionLevelBinding] ADD CONSTRAINT [DF_AMDimensionLevelBinding_ISBOUND] DEFAULT ((0)) FOR [IsBound]; GO
---------------------------------------------
---------------------------------------------
-- dbo.AMDimensionSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[AMDimensionSetup] (
[DimensionSetupGUID] uniqueidentifier NOT NULL,
[AssumptionViewGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[DimensionName] nvarchar(450) NOT NULL,
[IsFiltered] bit NOT NULL,
[IsRequired] bit NOT NULL,
[DisplayType] int NOT NULL,
[IsFilterOnLoad] bit NOT NULL,
PRIMARY KEY ([DimensionSetupGUID])
);
CREATE CLUSTERED INDEX [IX_AMDimensionSetup] ON [dbo].[AMDimensionSetup] ([AssumptionViewGUID]);
GO
ALTER TABLE [dbo].[AMDimensionSetup] ADD CONSTRAINT [FK_AMDimensionSetup_AMAssumptionView] FOREIGN KEY ([AssumptionViewGUID]) REFERENCES [dbo].[AMAssumptionView] ([AssumptionViewGUID]); GO
ALTER TABLE [dbo].[AMDimensionSetup] ADD CONSTRAINT [DF_AMDimensionSetup_IsFilterOnLoad] DEFAULT ((0)) FOR [IsFilterOnLoad]; GO
ALTER TABLE [dbo].[AMDimensionSetup] ADD CONSTRAINT [DF_AMDimensionSetup_DIMENSIONSETUPGUID] DEFAULT (newid()) FOR [DimensionSetupGUID]; GO
ALTER TABLE [dbo].[AMDimensionSetup] ADD CONSTRAINT [DF_AMDimensionSetup_ASSUMPTIONVIEWGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssumptionViewGUID]; GO
ALTER TABLE [dbo].[AMDimensionSetup] ADD CONSTRAINT [DF_AMDimensionSetup_DIMENSIONID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[AMDimensionSetup] ADD CONSTRAINT [DF_AMDimensionSetup_DIMENSIONNAME] DEFAULT ('') FOR [DimensionName]; GO
ALTER TABLE [dbo].[AMDimensionSetup] ADD CONSTRAINT [DF_AMDimensionSetup_ISFILTERED] DEFAULT ((0)) FOR [IsFiltered]; GO
ALTER TABLE [dbo].[AMDimensionSetup] ADD CONSTRAINT [DF_AMDimensionSetup_ISREQUIRED] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[AMDimensionSetup] ADD CONSTRAINT [DF_AMDimensionSetup_DISPLAYTYPE] DEFAULT ((0)) FOR [DisplayType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.AMGridSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[AMGridSetting] (
[GridSettingGUID] uniqueidentifier NOT NULL,
[AssumptionViewGUID] uniqueidentifier NOT NULL,
[Size] int NOT NULL,
[SettingType] int NOT NULL,
[FieldKey] nvarchar(4000) NOT NULL,
[IsVisible] bit NOT NULL,
PRIMARY KEY ([GridSettingGUID])
);
CREATE CLUSTERED INDEX [IX_AMGridSetting] ON [dbo].[AMGridSetting] ([AssumptionViewGUID]);
GO
ALTER TABLE [dbo].[AMGridSetting] ADD CONSTRAINT [FK_AMGridSetting_AMAssumptionView] FOREIGN KEY ([AssumptionViewGUID]) REFERENCES [dbo].[AMAssumptionView] ([AssumptionViewGUID]); GO
ALTER TABLE [dbo].[AMGridSetting] ADD CONSTRAINT [DF_AMGridSetting_GRIDSETTINGGUID] DEFAULT (newid()) FOR [GridSettingGUID]; GO
ALTER TABLE [dbo].[AMGridSetting] ADD CONSTRAINT [DF_AMGridSetting_ASSUMPTIONVIEWGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssumptionViewGUID]; GO
ALTER TABLE [dbo].[AMGridSetting] ADD CONSTRAINT [DF_AMGridSetting_COLUMNWIDTH] DEFAULT ((100)) FOR [Size]; GO
ALTER TABLE [dbo].[AMGridSetting] ADD CONSTRAINT [DF_AMGridSetting_SETTINGTYPE] DEFAULT ((0)) FOR [SettingType]; GO
ALTER TABLE [dbo].[AMGridSetting] ADD CONSTRAINT [DF_AMGridSetting_KEY] DEFAULT ('') FOR [FieldKey]; GO
ALTER TABLE [dbo].[AMGridSetting] ADD CONSTRAINT [DF_AMGridSetting_ISVISIBLE] DEFAULT ((1)) FOR [IsVisible]; GO
---------------------------------------------
---------------------------------------------
-- dbo.AMIncludedMember ------------------
---------------------------------------------
CREATE TABLE [dbo].[AMIncludedMember] (
[IncludedMemberGUID] uniqueidentifier NOT NULL,
[DimensionMemberID] nvarchar(450) NOT NULL,
[Name] nvarchar(450) NOT NULL,
[DimensionSetupGUID] uniqueidentifier NOT NULL,
[IsDataMember] bit NOT NULL,
[ParentIncludedMemberGUID] uniqueidentifier NOT NULL,
[OutlineLevel] int NOT NULL,
PRIMARY KEY ([IncludedMemberGUID])
);
CREATE CLUSTERED INDEX [IX_AMIncludedMember] ON [dbo].[AMIncludedMember] ([DimensionSetupGUID]);
GO
ALTER TABLE [dbo].[AMIncludedMember] ADD CONSTRAINT [FK_AMIncludedMember_AMDimensionSetup1] FOREIGN KEY ([DimensionSetupGUID]) REFERENCES [dbo].[AMDimensionSetup] ([DimensionSetupGUID]); GO
ALTER TABLE [dbo].[AMIncludedMember] ADD CONSTRAINT [DF_AMIncludedMember_INCLUDEDMEMBERGUID] DEFAULT (newid()) FOR [IncludedMemberGUID]; GO
ALTER TABLE [dbo].[AMIncludedMember] ADD CONSTRAINT [DF_AMIncludedMember_MEMBERID] DEFAULT ('') FOR [DimensionMemberID]; GO
ALTER TABLE [dbo].[AMIncludedMember] ADD CONSTRAINT [DF_AMIncludedMember_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[AMIncludedMember] ADD CONSTRAINT [DF_AMIncludedMember_DIMENSIONSETUPGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionSetupGUID]; GO
ALTER TABLE [dbo].[AMIncludedMember] ADD CONSTRAINT [DF_AMIncludedMember_ISDATAMEMBER] DEFAULT ((0)) FOR [IsDataMember]; GO
ALTER TABLE [dbo].[AMIncludedMember] ADD CONSTRAINT [DF_AMIncludedMember_PARENTINCLUDEDMEMBERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentIncludedMemberGUID]; GO
ALTER TABLE [dbo].[AMIncludedMember] ADD CONSTRAINT [DF_AMIncludedMember_OUTLINELEVEL] DEFAULT ((-1)) FOR [OutlineLevel]; GO
---------------------------------------------
---------------------------------------------
-- dbo.AMMultiEditGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[AMMultiEditGroup] (
[MultiEditGroupGUID] uniqueidentifier NOT NULL,
[AssumptionViewGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[KeyDimensionMemberID] nvarchar(450) NOT NULL,
[IncludedMemberIDs] nvarchar(max) NOT NULL,
[IsAbsolute] bit NOT NULL,
[Mode] int NOT NULL,
PRIMARY KEY ([MultiEditGroupGUID])
);
GO
ALTER TABLE [dbo].[AMMultiEditGroup] ADD CONSTRAINT [DF_AMMultiEditGroup_MULTIEDITGROUPGUID] DEFAULT (newid()) FOR [MultiEditGroupGUID]; GO
ALTER TABLE [dbo].[AMMultiEditGroup] ADD CONSTRAINT [DF_AMMultiEditGroup_ASSUMPTIONVIEWGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssumptionViewGUID]; GO
ALTER TABLE [dbo].[AMMultiEditGroup] ADD CONSTRAINT [DF_AMMultiEditGroup_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[AMMultiEditGroup] ADD CONSTRAINT [DF_AMMultiEditGroup_DIMENSIONGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[AMMultiEditGroup] ADD CONSTRAINT [DF_AMMultiEditGroup_KEYDIMENSIONMEMBERID] DEFAULT ('') FOR [KeyDimensionMemberID]; GO
ALTER TABLE [dbo].[AMMultiEditGroup] ADD CONSTRAINT [DF_AMMultiEditGroup_INCLUDEDMEMBERIDS] DEFAULT ('') FOR [IncludedMemberIDs]; GO
ALTER TABLE [dbo].[AMMultiEditGroup] ADD CONSTRAINT [DF_AMMultiEditGroup_ISABSOLUTE] DEFAULT ((0)) FOR [IsAbsolute]; GO
ALTER TABLE [dbo].[AMMultiEditGroup] ADD CONSTRAINT [DF_AMMultiEditGroup_Mode] DEFAULT ((0)) FOR [Mode]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ActionLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[ActionLog] (
[RowID] int NOT NULL,
[Action] varchar(64) NOT NULL,
[SubAction] varchar(400) NOT NULL,
[Details] varchar(400) NOT NULL,
[Username] varchar(64) NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[Duration] int NOT NULL,
[TokenGUID] uniqueidentifier NOT NULL,
[DateTimeStampUtc] datetime NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[ActionLog] ADD CONSTRAINT [DF_ActionLog_TokenGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TokenGUID]; GO
ALTER TABLE [dbo].[ActionLog] ADD CONSTRAINT [DF__ActionLog__DateT__45DC8664] DEFAULT (getutcdate()) FOR [DateTimeStampUtc]; GO
ALTER TABLE [dbo].[ActionLog] ADD CONSTRAINT [DF_ActionLog_Action] DEFAULT ('') FOR [Action]; GO
ALTER TABLE [dbo].[ActionLog] ADD CONSTRAINT [DF_ActionLog_SubAction] DEFAULT ('') FOR [SubAction]; GO
ALTER TABLE [dbo].[ActionLog] ADD CONSTRAINT [DF_ActionLog_Detail] DEFAULT ('') FOR [Details]; GO
ALTER TABLE [dbo].[ActionLog] ADD CONSTRAINT [DF_ActionLog_Username] DEFAULT ('') FOR [Username]; GO
ALTER TABLE [dbo].[ActionLog] ADD CONSTRAINT [DF_ActionLog_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[ActionLog] ADD CONSTRAINT [DF_ActionLog_Duration] DEFAULT ((0)) FOR [Duration]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ActionLogHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[ActionLogHistory] (
[Year] int NULL,
[Month] int NULL,
[Day] int NULL,
[Action] varchar(64) NOT NULL,
[SubAction] varchar(64) NOT NULL,
[SumDuration] int NULL,
[AvgDuration] int NULL,
[MinDuration] int NULL,
[MaxDuration] int NULL,
[StdevDuration] float NULL,
[Count] int NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ActiveControllers ------------------
---------------------------------------------
CREATE TABLE [dbo].[ActiveControllers] (
[ControllerID] uniqueidentifier NOT NULL,
[WorkerID] uniqueidentifier NOT NULL,
[TimeStamp] datetime NOT NULL
);
GO
ALTER TABLE [dbo].[ActiveControllers] ADD CONSTRAINT [DF_ActiveControllers_ControllerID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ControllerID]; GO
ALTER TABLE [dbo].[ActiveControllers] ADD CONSTRAINT [DF_ActiveControllers_WorkerID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkerID]; GO
ALTER TABLE [dbo].[ActiveControllers] ADD CONSTRAINT [DF_ActiveControllers_TimeStamp] DEFAULT (getdate()) FOR [TimeStamp]; GO
---------------------------------------------
---------------------------------------------
-- dbo.Announcement ------------------
---------------------------------------------
CREATE TABLE [dbo].[Announcement] (
[AnnouncementGUID] uniqueidentifier NOT NULL,
[AuthorGUID] uniqueidentifier NOT NULL,
[AuthorFullName] nvarchar(260) NOT NULL,
[Message] nvarchar(max) NOT NULL,
[DateCreated] datetime NOT NULL,
[DateModified] datetime NOT NULL,
[ModuleGUID_DEPRECATED] uniqueidentifier NOT NULL,
[IsUrgent] bit NOT NULL,
PRIMARY KEY ([AnnouncementGUID])
);
GO
ALTER TABLE [dbo].[Announcement] ADD CONSTRAINT [DF__Announcem__IsUrg__5513AB32] DEFAULT ((0)) FOR [IsUrgent]; GO
ALTER TABLE [dbo].[Announcement] ADD CONSTRAINT [DF__Announcem__Annou__59CA45FB] DEFAULT (newid()) FOR [AnnouncementGUID]; GO
ALTER TABLE [dbo].[Announcement] ADD CONSTRAINT [DF__Announcem__Autho__5ABE6A34] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorGUID]; GO
ALTER TABLE [dbo].[Announcement] ADD CONSTRAINT [DF__Announcem__Autho__5BB28E6D] DEFAULT ('') FOR [AuthorFullName]; GO
ALTER TABLE [dbo].[Announcement] ADD CONSTRAINT [DF__Announcem__Messa__5CA6B2A6] DEFAULT ('') FOR [Message]; GO
ALTER TABLE [dbo].[Announcement] ADD CONSTRAINT [DF__Announcem__DateC__5D9AD6DF] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[Announcement] ADD CONSTRAINT [DF__Announcem__DateM__5E8EFB18] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[Announcement] ADD CONSTRAINT [DF__Announcem__Modul__775AA8E2] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModuleGUID_DEPRECATED]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ApplicationMode ------------------
---------------------------------------------
CREATE TABLE [dbo].[ApplicationMode] (
[ApplicationModeID] tinyint NOT NULL,
[Name] nvarchar(128) NOT NULL,
[AccessLevel] tinyint NOT NULL,
PRIMARY KEY ([ApplicationModeID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ApplyAssumptionsHistoryDetail ------------------
---------------------------------------------
CREATE TABLE [dbo].[ApplyAssumptionsHistoryDetail] (
[HistoryMemberGUID] uniqueidentifier NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[AssumptionGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[AssumptionSetName] nvarchar(100) NOT NULL,
[AssumptionName] nvarchar(100) NOT NULL,
[TimeClass] nvarchar(50) NOT NULL,
[Dimensionality] nvarchar(max) NOT NULL,
[OldValue] decimal NOT NULL,
[NewValue] decimal NOT NULL,
[OldValueText] nvarchar(50) NULL,
[NewValueText] nvarchar(50) NULL,
[OldFormula] nvarchar(max) NOT NULL,
[NewFormula] nvarchar(max) NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[ValueDisplayType] int NOT NULL,
PRIMARY KEY ([HistoryMemberGUID])
);
GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_ValueDisplayType] DEFAULT ((0)) FOR [ValueDisplayType]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_HistoryMemberGUID] DEFAULT (newid()) FOR [HistoryMemberGUID]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_HistoryItemGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_AssumptionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssumptionGUID]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_AssumptionSetName] DEFAULT ('') FOR [AssumptionSetName]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_AssumptionName] DEFAULT ('') FOR [AssumptionName]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_TimeClass] DEFAULT ('') FOR [TimeClass]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_Dimensionality] DEFAULT ('') FOR [Dimensionality]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_OldValue] DEFAULT ((0)) FOR [OldValue]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_NewValue] DEFAULT ((0)) FOR [NewValue]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_OldValueText] DEFAULT ('') FOR [OldValueText]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_NewValueText] DEFAULT ('') FOR [NewValueText]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_OldFormula] DEFAULT ('d') FOR [OldFormula]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_NewFormula] DEFAULT ('') FOR [NewFormula]; GO
ALTER TABLE [dbo].[ApplyAssumptionsHistoryDetail] ADD CONSTRAINT [DF_ApplyAssumptionsHistoryDetail_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
---------------------------------------------
---------------------------------------------
-- dbo.BackupIsUsedScoreKeyLinkSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[BackupIsUsedScoreKeyLinkSetting] (
[ScoreKeyLinkSettingGuid] uniqueidentifier NOT NULL,
[KeyGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[IsUsed] bit NOT NULL,
[IsCustom] bit NOT NULL,
[IsMarkedForDeletion] bit NOT NULL,
[IsRequired] bit NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.BackupIsUsedScoreMeasureSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[BackupIsUsedScoreMeasureSetting] (
[ScoreMeasureSettingGuid] uniqueidentifier NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[IsUsed] bit NOT NULL,
[IsCustom] bit NOT NULL,
[IsMarkedForDeletion] bit NOT NULL,
[ColumnName] nvarchar(128) NOT NULL,
[IsRequired] bit NOT NULL,
[ObjectName] nvarchar(128) NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.BudgetFileAttachment ------------------
---------------------------------------------
CREATE TABLE [dbo].[BudgetFileAttachment] (
[FileAttachmentGUID] uniqueidentifier NOT NULL,
[FileName] nvarchar(250) NOT NULL,
[NumBytes] float NOT NULL,
[DepartmentId] int NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[DateCreated] datetime NOT NULL,
[LastSeenpath] nvarchar(4000) NOT NULL,
PRIMARY KEY ([FileAttachmentGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_BudgetFileAttachment_Unique] ON [dbo].[BudgetFileAttachment] ([DepartmentId], [FileName]);
GO
ALTER TABLE [dbo].[BudgetFileAttachment] ADD CONSTRAINT [DF_BudgetFileAttachment_FILEATTACHMENTGUID] DEFAULT (newid()) FOR [FileAttachmentGUID]; GO
ALTER TABLE [dbo].[BudgetFileAttachment] ADD CONSTRAINT [DF_BudgetFileAttachment_FILENAME] DEFAULT ('') FOR [FileName]; GO
ALTER TABLE [dbo].[BudgetFileAttachment] ADD CONSTRAINT [DF_BudgetFileAttachment_NUMBYTES] DEFAULT ((0)) FOR [NumBytes]; GO
ALTER TABLE [dbo].[BudgetFileAttachment] ADD CONSTRAINT [DF_BudgetFileAttachment_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[BudgetFileAttachment] ADD CONSTRAINT [DF_BudgetFileAttachment_LASTSEENPATH] DEFAULT ('') FOR [LastSeenpath]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CECubeAlias ------------------
---------------------------------------------
CREATE TABLE [dbo].[CECubeAlias] (
[CubeAliasGUID] uniqueidentifier NOT NULL,
[CubeName] nvarchar(64) NOT NULL,
[ObjectID] nvarchar(max) NOT NULL,
[AliasName] nvarchar(max) NOT NULL,
[AliasGUID] uniqueidentifier NOT NULL,
[ObjectType] int NOT NULL,
PRIMARY KEY ([CubeAliasGUID])
);
GO
ALTER TABLE [dbo].[CECubeAlias] ADD CONSTRAINT [DF_CubeAlias_CubeAliasGUID] DEFAULT (newid()) FOR [CubeAliasGUID]; GO
ALTER TABLE [dbo].[CECubeAlias] ADD CONSTRAINT [DF_CubeAlias_CubeName] DEFAULT ('') FOR [CubeName]; GO
ALTER TABLE [dbo].[CECubeAlias] ADD CONSTRAINT [DF_CubeAlias_ObjectID] DEFAULT ('') FOR [ObjectID]; GO
ALTER TABLE [dbo].[CECubeAlias] ADD CONSTRAINT [DF_CubeAlias_Alias] DEFAULT ('') FOR [AliasName]; GO
ALTER TABLE [dbo].[CECubeAlias] ADD CONSTRAINT [DF_CECubeAlias_AliasGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AliasGUID]; GO
ALTER TABLE [dbo].[CECubeAlias] ADD CONSTRAINT [DF_CubeAlias_ObjectType] DEFAULT ((0)) FOR [ObjectType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CECubeConnection ------------------
---------------------------------------------
CREATE TABLE [dbo].[CECubeConnection] (
[CubeConnectionGUID] uniqueidentifier NOT NULL,
[ServerName] nvarchar(64) NOT NULL,
[DatabaseName] nvarchar(128) NOT NULL,
[CubeName] nvarchar(64) NOT NULL,
[ConnectionType] int NOT NULL,
[IsActive] bit NOT NULL,
[DataPath] nvarchar(max) NOT NULL,
PRIMARY KEY ([CubeConnectionGUID])
);
GO
ALTER TABLE [dbo].[CECubeConnection] ADD CONSTRAINT [DF_CEConnection_ConnectionGUID] DEFAULT (newid()) FOR [CubeConnectionGUID]; GO
ALTER TABLE [dbo].[CECubeConnection] ADD CONSTRAINT [DF_CEConnection_ServerName] DEFAULT ('') FOR [ServerName]; GO
ALTER TABLE [dbo].[CECubeConnection] ADD CONSTRAINT [DF_CEConnection_DatabaseName] DEFAULT ('') FOR [DatabaseName]; GO
ALTER TABLE [dbo].[CECubeConnection] ADD CONSTRAINT [DF_CEConnection_CubeName] DEFAULT ('') FOR [CubeName]; GO
ALTER TABLE [dbo].[CECubeConnection] ADD CONSTRAINT [DF_CEConnection_Type] DEFAULT ((0)) FOR [ConnectionType]; GO
ALTER TABLE [dbo].[CECubeConnection] ADD CONSTRAINT [DF_CEConnection_IsActive] DEFAULT ((0)) FOR [IsActive]; GO
ALTER TABLE [dbo].[CECubeConnection] ADD CONSTRAINT [DF_CECubeConnection_DataPath] DEFAULT ('') FOR [DataPath]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CECubeReportLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[CECubeReportLink] (
[CubeReportLinkGUID] uniqueidentifier NOT NULL,
[CubeGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([CubeReportLinkGUID])
);
GO
ALTER TABLE [dbo].[CECubeReportLink] ADD CONSTRAINT [FK__CECubeRep__CubeG__4A0B4183] FOREIGN KEY ([CubeGUID]) REFERENCES [dbo].[EMFCubeStub] ([CubeGUID]); GO
ALTER TABLE [dbo].[CECubeReportLink] ADD CONSTRAINT [FK__CECubeRep__Repor__4AFF65BC] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[CECubeReportLink] ADD CONSTRAINT [DF__CECubeRep__CubeR__49171D4A] DEFAULT (newid()) FOR [CubeReportLinkGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMBucket ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMBucket] (
[BucketGUID] uniqueidentifier NOT NULL,
[CategoryGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(50) NOT NULL,
PRIMARY KEY ([BucketGUID])
);
GO
ALTER TABLE [dbo].[CMBucket] ADD CONSTRAINT [FK_ClassificationBucket_ClassificationCategory] FOREIGN KEY ([CategoryGUID]) REFERENCES [dbo].[CMCategory] ([CategoryGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMCategory ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMCategory] (
[CategoryGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(50) NOT NULL,
[Mutex] bit NOT NULL,
PRIMARY KEY ([CategoryGUID])
);
GO
ALTER TABLE [dbo].[CMCategory] ADD CONSTRAINT [DF_ClassificationCategory_ClassificationCategoryGUID] DEFAULT (newid()) FOR [CategoryGUID]; GO
ALTER TABLE [dbo].[CMCategory] ADD CONSTRAINT [DF_ClassificationCategory_Mutex] DEFAULT ((0)) FOR [Mutex]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMCategoryFramework ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMCategoryFramework] (
[CategoryGUID] uniqueidentifier NOT NULL,
[FrameworkID] tinyint NOT NULL,
PRIMARY KEY ([CategoryGUID], [FrameworkID])
);
GO
ALTER TABLE [dbo].[CMCategoryFramework] ADD CONSTRAINT [FK_CMCategoryFramework_CMCategory] FOREIGN KEY ([CategoryGUID]) REFERENCES [dbo].[CMCategory] ([CategoryGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMCategoryTag ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMCategoryTag] (
[CategoryGUID] uniqueidentifier NOT NULL,
[TagGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([CategoryGUID], [TagGUID])
);
GO
ALTER TABLE [dbo].[CMCategoryTag] ADD CONSTRAINT [FK_CMCategoryTag_CMCategory] FOREIGN KEY ([CategoryGUID]) REFERENCES [dbo].[CMCategory] ([CategoryGUID]); GO
ALTER TABLE [dbo].[CMCategoryTag] ADD CONSTRAINT [FK_CMCategoryTag_Tag] FOREIGN KEY ([TagGUID]) REFERENCES [dbo].[Tag] ([TagGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMFacts ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMFacts] (
[DimensionGUID] uniqueidentifier NOT NULL,
[MemberGUID] uniqueidentifier NOT NULL,
[BucketGUID] uniqueidentifier NOT NULL,
[GroupingGUID] uniqueidentifier NOT NULL,
[GroupingID] int NOT NULL,
PRIMARY KEY ([DimensionGUID], [MemberGUID], [BucketGUID], [GroupingGUID])
);
GO
ALTER TABLE [dbo].[CMFacts] ADD CONSTRAINT [FK_ClassificationFacts_ClassificationBucket] FOREIGN KEY ([BucketGUID]) REFERENCES [dbo].[CMBucket] ([BucketGUID]); GO
ALTER TABLE [dbo].[CMFacts] ADD CONSTRAINT [FK_CMFacts_ScoreDimension] FOREIGN KEY ([DimensionGUID]) REFERENCES [dbo].[ScoreDimension] ([DimensionGUID]); GO
ALTER TABLE [dbo].[CMFacts] ADD CONSTRAINT [DF_CMFacts_MemberGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MemberGUID]; GO
ALTER TABLE [dbo].[CMFacts] ADD CONSTRAINT [DF_CMFacts_GroupingGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GroupingGUID]; GO
ALTER TABLE [dbo].[CMFacts] ADD CONSTRAINT [DF_CMFacts_GroupingID] DEFAULT ((0)) FOR [GroupingID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMFlex ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMFlex] (
[FlexGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
PRIMARY KEY ([FlexGUID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.CMFlexKeyLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMFlexKeyLink] (
[FlexGUID] uniqueidentifier NOT NULL,
[FlexKeyLinkGUID] uniqueidentifier NOT NULL,
[IsUsedInFlex] bit NOT NULL,
PRIMARY KEY ([FlexGUID], [FlexKeyLinkGUID])
);
GO
ALTER TABLE [dbo].[CMFlexKeyLink] ADD CONSTRAINT [FK_CMFlexKeyLink_CMFlex] FOREIGN KEY ([FlexGUID]) REFERENCES [dbo].[CMFlex] ([FlexGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMFlexMeasureMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMFlexMeasureMapping] (
[MeasureMappingGUID] uniqueidentifier NOT NULL,
[FlexGUID] uniqueidentifier NOT NULL,
[TargetMeasureGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([MeasureMappingGUID])
);
GO
ALTER TABLE [dbo].[CMFlexMeasureMapping] ADD CONSTRAINT [FK_CMFlexMeasureMapping_CMFlex] FOREIGN KEY ([FlexGUID]) REFERENCES [dbo].[CMFlex] ([FlexGUID]); GO
ALTER TABLE [dbo].[CMFlexMeasureMapping] ADD CONSTRAINT [FK_CMFlexMeasureMapping_CMFlexMeasureMapping] FOREIGN KEY ([MeasureMappingGUID]) REFERENCES [dbo].[CMFlexMeasureMapping] ([MeasureMappingGUID]); GO
ALTER TABLE [dbo].[CMFlexMeasureMapping] ADD CONSTRAINT [FK_CMFlexMeasureMapping_ScoreMeasure] FOREIGN KEY ([TargetMeasureGUID]) REFERENCES [dbo].[ScoreMeasure] ([MeasureGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMFlexSourceMeasureMappingLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMFlexSourceMeasureMappingLink] (
[MeasureMappingGUID] uniqueidentifier NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([MeasureMappingGUID], [MeasureGUID])
);
GO
ALTER TABLE [dbo].[CMFlexSourceMeasureMappingLink] ADD CONSTRAINT [FK_CMFlexSourceMeasureMappingLink_ScoreMeasure] FOREIGN KEY ([MeasureGUID]) REFERENCES [dbo].[ScoreMeasure] ([MeasureGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMFlexSourceTableLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMFlexSourceTableLink] (
[FlexGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([FlexGUID], [DataTableGUID])
);
GO
ALTER TABLE [dbo].[CMFlexSourceTableLink] ADD CONSTRAINT [FK_CMFlexSourceTableLink_CMFlex] FOREIGN KEY ([FlexGUID]) REFERENCES [dbo].[CMFlex] ([FlexGUID]); GO
ALTER TABLE [dbo].[CMFlexSourceTableLink] ADD CONSTRAINT [FK_CMFlexSourceTableLink_ScoreDataTable] FOREIGN KEY ([DataTableGUID]) REFERENCES [dbo].[ScoreDataTable] ([DataTableGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMFlexTargetTableLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMFlexTargetTableLink] (
[FlexGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([FlexGUID], [DataTableGUID])
);
GO
ALTER TABLE [dbo].[CMFlexTargetTableLink] ADD CONSTRAINT [FK_CMFlexTargetTableLink_CMFlex] FOREIGN KEY ([FlexGUID]) REFERENCES [dbo].[CMFlex] ([FlexGUID]); GO
ALTER TABLE [dbo].[CMFlexTargetTableLink] ADD CONSTRAINT [FK_CMFlexTargetTableLink_ScoreDataTable] FOREIGN KEY ([DataTableGUID]) REFERENCES [dbo].[ScoreDataTable] ([DataTableGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMMetric ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMMetric] (
[MetricGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(50) NOT NULL,
[MetricCode] nvarchar(50) NOT NULL,
[IsAggregable] bit NOT NULL,
[ToleranceValue] float NOT NULL,
[TolerancePercent] float NOT NULL,
[IsInverted] bit NOT NULL,
[FormatString] nvarchar(100) NULL,
[DisplayOrder] int NOT NULL,
[Category] nvarchar(100) NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[Calculation] nvarchar(max) NOT NULL,
[BucketGUID] uniqueidentifier NOT NULL,
[IsCustomOverride] bit NOT NULL,
[CalculationParts] nvarchar(max) NOT NULL,
[CommentType] tinyint NOT NULL,
[DimensionType] tinyint NOT NULL,
[FriendlyName] nvarchar(256) NULL,
[CalculationPartTypes] nvarchar(100) NOT NULL,
[ClinicalIndicatorID] int NOT NULL,
[IsPositiveFavorable] bit NOT NULL,
[VarianceRule] tinyint NOT NULL,
[IsHidden] bit NOT NULL,
[UseBaselineTarget] bit NOT NULL,
[DateCreated] datetime NOT NULL,
[IsShownForSystem] bit NOT NULL,
[IsShownForEntity] bit NOT NULL,
[IsShownForDepartmentRollup1] bit NOT NULL,
[IsShownForDepartmentRollup2] bit NOT NULL,
[IsShownForDepartmentRollup3] bit NOT NULL,
[IsShownForDepartmentRollup4] bit NOT NULL,
[IsShownForDepartmentRollup5] bit NOT NULL,
[IsShownForDepartmentRollup6] bit NOT NULL,
[IsShownForDepartment] bit NOT NULL,
[TimeFrame] tinyint NOT NULL,
[Description] nvarchar(300) NOT NULL,
[ThresholdMaterialityValue] float NULL,
[DepartmentsType] tinyint NULL,
[IsStandard] bit NOT NULL,
[ToBeDeleted] bit NOT NULL,
PRIMARY KEY ([MetricGUID])
);
GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [CHK_CMMetric_DepartmentsType] CHECK ([DepartmentsType]=(1) OR [DepartmentsType]=(0)); GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_UseBaselineTarget] DEFAULT ((0)) FOR [UseBaselineTarget]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_ClassificationMetric_ClassificationMetricGUID] DEFAULT (newid()) FOR [MetricGUID]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_MetricCode] DEFAULT ('') FOR [MetricCode]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_ClassificationMetric_IsAggregable] DEFAULT ((1)) FOR [IsAggregable]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_ToleranceValue] DEFAULT ((0)) FOR [ToleranceValue]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__Commen__1523DCDC] DEFAULT ((0)) FOR [CommentType]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_TolerancePercent] DEFAULT ((0)) FOR [TolerancePercent]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsInverted] DEFAULT ((0)) FOR [IsInverted]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_FormatString] DEFAULT ('') FOR [FormatString]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__Clinic__22C8BC14] DEFAULT ((0)) FOR [ClinicalIndicatorID]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__Descri__28A4F021] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_CalculationParts] DEFAULT ('') FOR [CalculationParts]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__Bucket__46CEB05B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [BucketGUID]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_VarianceRule] DEFAULT ((0)) FOR [VarianceRule]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsHidden] DEFAULT ((0)) FOR [IsHidden]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__Measur__479D17D8] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__Calcul__49D53A38] DEFAULT ('') FOR [Calculation]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_DisplayOrder_1] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__Catego__5561274A] DEFAULT ('') FOR [Category]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsShownForSystem] DEFAULT ((1)) FOR [IsShownForSystem]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsShownForEntity] DEFAULT ((1)) FOR [IsShownForEntity]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsShownForDepartmentRollup1] DEFAULT ((1)) FOR [IsShownForDepartmentRollup1]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsShownForDepartmentRollup2] DEFAULT ((1)) FOR [IsShownForDepartmentRollup2]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsShownForDepartmentRollup3] DEFAULT ((1)) FOR [IsShownForDepartmentRollup3]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsShownForDepartmentRollup4] DEFAULT ((1)) FOR [IsShownForDepartmentRollup4]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsShownForDepartmentRollup5] DEFAULT ((1)) FOR [IsShownForDepartmentRollup5]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__IsCust__5C3ECE8D] DEFAULT ((0)) FOR [IsCustomOverride]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsShownForDepartmentRollup6] DEFAULT ((1)) FOR [IsShownForDepartmentRollup6]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsShownForDepartment] DEFAULT ((1)) FOR [IsShownForDepartment]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsPositiveFavorable] DEFAULT ((1)) FOR [IsPositiveFavorable]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__Calcul__661ED530] DEFAULT ('') FOR [CalculationPartTypes]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_IsStandard] DEFAULT ((0)) FOR [IsStandard]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF_CMMetric_DimensionType] DEFAULT ((0)) FOR [DimensionType]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__TimeFr__7622C69E] DEFAULT ((0)) FOR [TimeFrame]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__ToBeDe__7777DAAB] DEFAULT ((0)) FOR [ToBeDeleted]; GO
ALTER TABLE [dbo].[CMMetric] ADD CONSTRAINT [DF__CMMetric__DateCr__79DB1B8D] DEFAULT (getdate()) FOR [DateCreated]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMMetricCommentDepartmentFilter ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMMetricCommentDepartmentFilter] (
[MetricCommentDepartmentFilterGUID] uniqueidentifier NOT NULL,
[MetricGUID] uniqueidentifier NOT NULL,
[Value] nvarchar(256) NOT NULL,
[NameValue] nvarchar(max) NULL,
PRIMARY KEY ([MetricCommentDepartmentFilterGUID])
);
GO
ALTER TABLE [dbo].[CMMetricCommentDepartmentFilter] ADD CONSTRAINT [DF_CMMetricCommentDepartmentFilter_MetricCommentDepartmentFilterGUID] DEFAULT (newid()) FOR [MetricCommentDepartmentFilterGUID]; GO
ALTER TABLE [dbo].[CMMetricCommentDepartmentFilter] ADD CONSTRAINT [DF_CMMetricCommentDepartmentFilter_MetricGUID] DEFAULT (newid()) FOR [MetricGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMMetricCommentDepartmentFilterCache ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMMetricCommentDepartmentFilterCache] (
[MetricGUID] uniqueidentifier NOT NULL,
[DepartmentID] int NOT NULL,
PRIMARY KEY ([MetricGUID], [DepartmentID])
);
GO
ALTER TABLE [dbo].[CMMetricCommentDepartmentFilterCache] ADD CONSTRAINT [FK_DBO_CMMetricCommentDepartmentFilterCache_CMMetric] FOREIGN KEY ([MetricGUID]) REFERENCES [dbo].[CMMetric] ([MetricGUID]); GO
ALTER TABLE [dbo].[CMMetricCommentDepartmentFilterCache] ADD CONSTRAINT [FK_DBO_CMMetricCommentDepartmentFilterCache_DimDepartment] FOREIGN KEY ([DepartmentID]) REFERENCES [fw].[DimDepartment] ([DepartmentID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMMetricFramework ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMMetricFramework] (
[MetricGUID] uniqueidentifier NOT NULL,
[FrameworkID] tinyint NOT NULL,
PRIMARY KEY ([MetricGUID], [FrameworkID])
);
GO
ALTER TABLE [dbo].[CMMetricFramework] ADD CONSTRAINT [FK_CMMetricFramework_CMMetric] FOREIGN KEY ([MetricGUID]) REFERENCES [dbo].[CMMetric] ([MetricGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMMetricOverride ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMMetricOverride] (
[MetricGUID] uniqueidentifier NOT NULL,
[ItemID] int NOT NULL,
[RollupLevel] nvarchar(100) NOT NULL,
[ToleranceValue] float NOT NULL,
[TolerancePercent] float NOT NULL,
[CommentType] tinyint NOT NULL,
[ThresholdMaterialityValue] float NULL,
PRIMARY KEY ([MetricGUID], [ItemID], [RollupLevel])
);
GO
ALTER TABLE [dbo].[CMMetricOverride] ADD CONSTRAINT [FK_CMMetricOverride_MetricGUID] FOREIGN KEY ([MetricGUID]) REFERENCES [dbo].[CMMetric] ([MetricGUID]); GO
ALTER TABLE [dbo].[CMMetricOverride] ADD CONSTRAINT [CK_CMMetricOverride_RollupLevel] CHECK ([RollupLevel]='DepartmentRollup6' OR [RollupLevel]='DepartmentRollup5' OR [RollupLevel]='DepartmentRollup4' OR [RollupLevel]='DepartmentRollup3' OR [RollupLevel]='DepartmentRollup2' OR [RollupLevel]='DepartmentRollup1' OR [RollupLevel]='Entity' OR [RollupLevel]='System'); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMMetricTag ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMMetricTag] (
[MetricGUID] uniqueidentifier NOT NULL,
[TagGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([MetricGUID], [TagGUID])
);
GO
ALTER TABLE [dbo].[CMMetricTag] ADD CONSTRAINT [FK_CMMetricTag_CMMetric] FOREIGN KEY ([MetricGUID]) REFERENCES [dbo].[CMMetric] ([MetricGUID]); GO
ALTER TABLE [dbo].[CMMetricTag] ADD CONSTRAINT [FK_CMMetricTag_Tag] FOREIGN KEY ([TagGUID]) REFERENCES [dbo].[Tag] ([TagGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMRule ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMRule] (
[RuleGUID] uniqueidentifier NOT NULL,
[BucketGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[RuleType] int NOT NULL,
PRIMARY KEY ([RuleGUID])
);
GO
ALTER TABLE [dbo].[CMRule] ADD CONSTRAINT [FK_ClassificationRule_ClassificationBucket] FOREIGN KEY ([BucketGUID]) REFERENCES [dbo].[CMBucket] ([BucketGUID]); GO
ALTER TABLE [dbo].[CMRule] ADD CONSTRAINT [DF_ClassificationRule_ClassificationRuleGUID] DEFAULT (newid()) FOR [RuleGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMRuleTag ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMRuleTag] (
[RuleGUID] uniqueidentifier NOT NULL,
[TagGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([RuleGUID], [TagGUID])
);
GO
ALTER TABLE [dbo].[CMRuleTag] ADD CONSTRAINT [FK__CMRuleTag__RuleG__3749B010] FOREIGN KEY ([RuleGUID]) REFERENCES [dbo].[CMRule] ([RuleGUID]); GO
ALTER TABLE [dbo].[CMRuleTag] ADD CONSTRAINT [FK__CMRuleTag__TagGU__383DD449] FOREIGN KEY ([TagGUID]) REFERENCES [dbo].[Tag] ([TagGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMRuleValue ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMRuleValue] (
[RuleValueGUID] uniqueidentifier NOT NULL,
[RuleGUID] uniqueidentifier NOT NULL,
[Value] nvarchar(100) NOT NULL,
[SortOrder] int NOT NULL,
[IsExcluding] bit NOT NULL,
[GroupingID] int NOT NULL,
[GroupingGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[NameValue] nvarchar(max) NULL,
PRIMARY KEY ([RuleValueGUID])
);
GO
ALTER TABLE [dbo].[CMRuleValue] ADD CONSTRAINT [FK_ClassificationRuleValue_ClassificationRule] FOREIGN KEY ([RuleGUID]) REFERENCES [dbo].[CMRule] ([RuleGUID]); GO
ALTER TABLE [dbo].[CMRuleValue] ADD CONSTRAINT [DF_ClassificationRuleValue_ClassificationRuleValueGUID] DEFAULT (newid()) FOR [RuleValueGUID]; GO
ALTER TABLE [dbo].[CMRuleValue] ADD CONSTRAINT [DF_CMRuleValue_IsExcluding] DEFAULT ((0)) FOR [IsExcluding]; GO
ALTER TABLE [dbo].[CMRuleValue] ADD CONSTRAINT [DF_CMRuleValue_GroupingID] DEFAULT ((0)) FOR [GroupingID]; GO
ALTER TABLE [dbo].[CMRuleValue] ADD CONSTRAINT [DF_CMRuleValue_GroupingGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GroupingGUID]; GO
ALTER TABLE [dbo].[CMRuleValue] ADD CONSTRAINT [DF_CMRuleValue_DimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMSampleTable ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMSampleTable] (
[SampleTableGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[isLocked] bit NOT NULL,
PRIMARY KEY ([SampleTableGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_ClassificationSampleTable] ON [dbo].[CMSampleTable] ([Name]);
GO
ALTER TABLE [dbo].[CMSampleTable] ADD CONSTRAINT [DF_ClassificationSampleTable_ClassificationSampleTableGUID] DEFAULT (newid()) FOR [SampleTableGUID]; GO
ALTER TABLE [dbo].[CMSampleTable] ADD CONSTRAINT [DF_ClassificationSampleTable_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[CMSampleTable] ADD CONSTRAINT [DF_CMSampleTable_isLocked] DEFAULT ((0)) FOR [isLocked]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMSampleTableDataLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMSampleTableDataLink] (
[SampleTableDataLinkGUID] uniqueidentifier NOT NULL,
[SampleTableGUID] uniqueidentifier NOT NULL,
[ScoreDataTableGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([SampleTableDataLinkGUID])
);
GO
ALTER TABLE [dbo].[CMSampleTableDataLink] ADD CONSTRAINT [FK_CMSampleTableDataLink_CMSampleTable] FOREIGN KEY ([SampleTableGUID]) REFERENCES [dbo].[CMSampleTable] ([SampleTableGUID]); GO
ALTER TABLE [dbo].[CMSampleTableDataLink] ADD CONSTRAINT [FK_CMSampleTableDataLink_ScoreDataTable] FOREIGN KEY ([ScoreDataTableGUID]) REFERENCES [dbo].[ScoreDataTable] ([DataTableGUID]); GO
ALTER TABLE [dbo].[CMSampleTableDataLink] ADD CONSTRAINT [DF_CMSampleTableDataLink_SampleTableDataLinkGUID] DEFAULT (newid()) FOR [SampleTableDataLinkGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMSampleTableFramework ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMSampleTableFramework] (
[SampleTableGUID] uniqueidentifier NOT NULL,
[FrameworkID] tinyint NOT NULL,
PRIMARY KEY ([SampleTableGUID], [FrameworkID])
);
GO
ALTER TABLE [dbo].[CMSampleTableFramework] ADD CONSTRAINT [FK_CMSampleTableFramework_CMSampleTable] FOREIGN KEY ([SampleTableGUID]) REFERENCES [dbo].[CMSampleTable] ([SampleTableGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CMSampleTableKeyLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMSampleTableKeyLink] (
[SampleTableKeyLinkGUID] uniqueidentifier NOT NULL,
[SampleTableGUID] uniqueidentifier NOT NULL,
[KeyGUID] uniqueidentifier NOT NULL,
[KeyAlternateAttributeGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([SampleTableKeyLinkGUID])
);
GO
ALTER TABLE [dbo].[CMSampleTableKeyLink] ADD CONSTRAINT [FK_CMSampleTableKeyLink_CMSampleTable] FOREIGN KEY ([SampleTableGUID]) REFERENCES [dbo].[CMSampleTable] ([SampleTableGUID]); GO
ALTER TABLE [dbo].[CMSampleTableKeyLink] ADD CONSTRAINT [FK_CMSampleTableKeyLink_ScoreAttribute] FOREIGN KEY ([KeyGUID]) REFERENCES [dbo].[ScoreAttribute] ([AttributeGUID]); GO
ALTER TABLE [dbo].[CMSampleTableKeyLink] ADD CONSTRAINT [DF_ClassificationSampleTableKeyLink_ClassificationSampleTableKeyLinkGUID] DEFAULT (newid()) FOR [SampleTableKeyLinkGUID]; GO
ALTER TABLE [dbo].[CMSampleTableKeyLink] ADD CONSTRAINT [DF_ClassificationSampleTableKeyLink_ClassificationSampleTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SampleTableGUID]; GO
ALTER TABLE [dbo].[CMSampleTableKeyLink] ADD CONSTRAINT [DF__CMSampleT__KeyAl__45B4CF66] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [KeyAlternateAttributeGUID]; GO
ALTER TABLE [dbo].[CMSampleTableKeyLink] ADD CONSTRAINT [DF_CMSampleTableKeyLink_KeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [KeyGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMSampleTableMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMSampleTableMeasure] (
[MeasureGUID] uniqueidentifier NOT NULL,
[SampleTableGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
PRIMARY KEY ([MeasureGUID])
);
GO
ALTER TABLE [dbo].[CMSampleTableMeasure] ADD CONSTRAINT [FK_CMSampleTableMeasure_CMSampleTable] FOREIGN KEY ([SampleTableGUID]) REFERENCES [dbo].[CMSampleTable] ([SampleTableGUID]); GO
ALTER TABLE [dbo].[CMSampleTableMeasure] ADD CONSTRAINT [DF_CMSampleTableMeasure_MeasureGUID] DEFAULT (newid()) FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[CMSampleTableMeasure] ADD CONSTRAINT [DF_CMSampleTableMeasure_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[CMSampleTableMeasure] ADD CONSTRAINT [DF_CMSampleTableMeasure_SampleTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SampleTableGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMSampleTableMetricLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMSampleTableMetricLink] (
[SampleTableGUID] uniqueidentifier NOT NULL,
[MetricGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([SampleTableGUID], [MetricGUID])
);
GO
ALTER TABLE [dbo].[CMSampleTableMetricLink] ADD CONSTRAINT [FK_CMSampleTableMetricLink_CMMetric] FOREIGN KEY ([MetricGUID]) REFERENCES [dbo].[CMMetric] ([MetricGUID]); GO
ALTER TABLE [dbo].[CMSampleTableMetricLink] ADD CONSTRAINT [FK_CMSampleTableMetricLink_CMSampleTable] FOREIGN KEY ([SampleTableGUID]) REFERENCES [dbo].[CMSampleTable] ([SampleTableGUID]); GO
ALTER TABLE [dbo].[CMSampleTableMetricLink] ADD CONSTRAINT [DF_Table_1_MetricGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MetricGUID]; GO
ALTER TABLE [dbo].[CMSampleTableMetricLink] ADD CONSTRAINT [DF_ClassificationSampleTableMetricLink_ClassificationSampleTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SampleTableGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMSampleTableMetricMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMSampleTableMetricMapping] (
[SampleTableMetricMappingGUID] uniqueidentifier NOT NULL,
[MetricGUID] uniqueidentifier NOT NULL,
[SampleTableDataLinkGUID] uniqueidentifier NOT NULL,
[ScoreMeasureGUID] uniqueidentifier NOT NULL,
[SampleTableMeasureGUID] uniqueidentifier NOT NULL,
[SampleTableGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([SampleTableMetricMappingGUID])
);
GO
ALTER TABLE [dbo].[CMSampleTableMetricMapping] ADD CONSTRAINT [FK_CMSampleTableMetricMapping_CMMetric] FOREIGN KEY ([MetricGUID]) REFERENCES [dbo].[CMMetric] ([MetricGUID]); GO
ALTER TABLE [dbo].[CMSampleTableMetricMapping] ADD CONSTRAINT [FK_CMSampleTableMetricMapping_ScoreMeasure] FOREIGN KEY ([ScoreMeasureGUID]) REFERENCES [dbo].[ScoreMeasure] ([MeasureGUID]); GO
ALTER TABLE [dbo].[CMSampleTableMetricMapping] ADD CONSTRAINT [DF_CMSampleTableMetricMapping_SampleTableMetricMappingGUID] DEFAULT (newid()) FOR [SampleTableMetricMappingGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CMSampleTableTargetFilter ------------------
---------------------------------------------
CREATE TABLE [dbo].[CMSampleTableTargetFilter] (
[TargetFilterGUID] uniqueidentifier NOT NULL,
[SampleTableGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[MemberGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([TargetFilterGUID])
);
GO
ALTER TABLE [dbo].[CMSampleTableTargetFilter] ADD CONSTRAINT [FK_CMSampleTableTargetFilter_CMSampleTable] FOREIGN KEY ([SampleTableGUID]) REFERENCES [dbo].[CMSampleTable] ([SampleTableGUID]); GO
ALTER TABLE [dbo].[CMSampleTableTargetFilter] ADD CONSTRAINT [FK_CMSampleTableTargetFilter_ScoreDimension] FOREIGN KEY ([DimensionGUID]) REFERENCES [dbo].[ScoreDimension] ([DimensionGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.CSDimensionConstant ------------------
---------------------------------------------
CREATE TABLE [dbo].[CSDimensionConstant] (
[DimensionConstantGUID] uniqueidentifier NOT NULL,
[SetupGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[DimensionMemberGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([DimensionConstantGUID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ClientContact ------------------
---------------------------------------------
CREATE TABLE [dbo].[ClientContact] (
[ClientContactGUID] uniqueidentifier NOT NULL,
[ModuleGUID] uniqueidentifier NOT NULL,
[ContactName] nvarchar(256) NOT NULL,
[ContactInfo] nvarchar(max) NOT NULL,
PRIMARY KEY ([ClientContactGUID])
);
GO
ALTER TABLE [dbo].[ClientContact] ADD CONSTRAINT [FK__ClientCon__Modul__25217392] FOREIGN KEY ([ModuleGUID]) REFERENCES [dbo].[SystemCenterModule] ([ModuleGUID]); GO
ALTER TABLE [dbo].[ClientContact] ADD CONSTRAINT [DF__ClientCon__Clien__242D4F59] DEFAULT (newid()) FOR [ClientContactGUID]; GO
ALTER TABLE [dbo].[ClientContact] ADD CONSTRAINT [DF__ClientCon__Conta__261597CB] DEFAULT ('') FOR [ContactName]; GO
ALTER TABLE [dbo].[ClientContact] ADD CONSTRAINT [DF__ClientCon__Conta__2709BC04] DEFAULT ('') FOR [ContactInfo]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ClientDefinedColumns ------------------
---------------------------------------------
CREATE TABLE [dbo].[ClientDefinedColumns] (
[ClientDefinedColumnGUID] uniqueidentifier NOT NULL,
[OptimizationPoolGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[SortOrder] int NULL,
PRIMARY KEY ([ClientDefinedColumnGUID])
);
GO
ALTER TABLE [dbo].[ClientDefinedColumns] ADD CONSTRAINT [FK_ClientDefinedColumns_FormFieldGUID] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FE2FormField] ([FormFieldGUID]); GO
ALTER TABLE [dbo].[ClientDefinedColumns] ADD CONSTRAINT [FK_ClientDefinedColumns_OMZPool] FOREIGN KEY ([OptimizationPoolGUID]) REFERENCES [dbo].[OMZPool] ([PoolGUID]); GO
ALTER TABLE [dbo].[ClientDefinedColumns] ADD CONSTRAINT [DF__ClientDef__Clien__1AEA68C3] DEFAULT (newid()) FOR [ClientDefinedColumnGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ColumnStoreIndex ------------------
---------------------------------------------
CREATE TABLE [dbo].[ColumnStoreIndex] (
[i] int NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ContentMigrationAttributeMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[ContentMigrationAttributeMapping] (
[ContentMigrationAttributeMappingID] int NOT NULL,
[ScoreDimensionGUID] uniqueidentifier NULL,
[ScoreAttributeGUID] uniqueidentifier NULL,
[ParentDimensionGUID] uniqueidentifier NULL,
[ScoreDatatableGUID] uniqueidentifier NULL,
[CubeDimensionName] nvarchar(200) NULL,
[CubeAttributeName] nvarchar(200) NULL,
[CubeDataType] nvarchar(200) NULL,
[ParentSqlObjectDefinition] nvarchar(200) NULL,
[BaseSqlObjectDefinition] nvarchar(200) NULL,
[SqlObjectDefinition] nvarchar(200) NULL,
[SqlColumnName] nvarchar(200) NULL,
[SnowflakeObjectDefinition] nvarchar(200) NULL,
[SnowflakeColumnName] nvarchar(200) NULL,
[SisenseDataMart] nvarchar(200) NULL,
[SisenseColumnName] nvarchar(200) NULL,
[SisenseTableName] nvarchar(200) NULL,
[SqlDataType] nvarchar(100) NOT NULL,
[ScoreDimensionName] nvarchar(100) NOT NULL,
PRIMARY KEY ([ContentMigrationAttributeMappingID])
);
GO
ALTER TABLE [dbo].[ContentMigrationAttributeMapping] ADD CONSTRAINT [DF__ContentMi__SqlDa__3922751B] DEFAULT ('') FOR [SqlDataType]; GO
ALTER TABLE [dbo].[ContentMigrationAttributeMapping] ADD CONSTRAINT [DF__ContentMi__Score__69268DF8] DEFAULT ('') FOR [ScoreDimensionName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ContentMigrationCalculationMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[ContentMigrationCalculationMapping] (
[CubeCalculationName] nvarchar(200) NULL,
[CubeMeasureGroupName] nvarchar(200) NULL,
[CubeCalculation] nvarchar(2000) NULL,
[CubeIncludedMeasuresCSV] nvarchar(2000) NULL,
[SisenseDataMart] nvarchar(200) NULL,
[SisenseColumnName] nvarchar(200) NULL,
[ContentMigrationCalculationMappingID] int NOT NULL,
PRIMARY KEY ([ContentMigrationCalculationMappingID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ContentMigrationMeasureMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[ContentMigrationMeasureMapping] (
[ContentMigrationMeasureMappingID] int NOT NULL,
[ScoreDatatableGUID] uniqueidentifier NULL,
[ScoreMeasureGUID] uniqueidentifier NULL,
[CubeMeasureGroupName] nvarchar(200) NULL,
[CubeMeasureName] nvarchar(200) NULL,
[CubeDataType] nvarchar(200) NULL,
[CubeAggregationType] nvarchar(200) NULL,
[SqlObjectDefinition] nvarchar(200) NULL,
[SqlColumnName] nvarchar(200) NULL,
[SnowflakeObjectDefinition] nvarchar(200) NULL,
[SnowflakeColumnName] nvarchar(200) NULL,
[SisenseDataMart] nvarchar(200) NULL,
[SisenseColumnName] nvarchar(200) NULL,
[SisenseTableName] nvarchar(200) NULL,
[SqlDataType] nvarchar(100) NOT NULL,
PRIMARY KEY ([ContentMigrationMeasureMappingID])
);
GO
ALTER TABLE [dbo].[ContentMigrationMeasureMapping] ADD CONSTRAINT [DF__ContentMi__SqlDa__3A169954] DEFAULT ('') FOR [SqlDataType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CubeDirtyPartitionInfo ------------------
---------------------------------------------
CREATE TABLE [dbo].[CubeDirtyPartitionInfo] (
[CubeDirtyPartitionInfoGuid] uniqueidentifier NOT NULL,
[Status] tinyint NOT NULL,
[PartitionNames] nvarchar(max) NOT NULL,
[StartTimeUtc] datetime NOT NULL,
[EndTimeUtc] datetime NULL,
[LastSuccessfulChangeTrackingID] bigint NOT NULL,
[CurrentChangeTrackingID] bigint NOT NULL,
[CubeProcessSuccess] bit NOT NULL,
PRIMARY KEY ([CubeDirtyPartitionInfoGuid])
);
GO
ALTER TABLE [dbo].[CubeDirtyPartitionInfo] ADD CONSTRAINT [DF__CubeDirty__CubeD__24F3F30B] DEFAULT (newid()) FOR [CubeDirtyPartitionInfoGuid]; GO
ALTER TABLE [dbo].[CubeDirtyPartitionInfo] ADD CONSTRAINT [DF__CubeDirty__Statu__25E81744] DEFAULT ((0)) FOR [Status]; GO
ALTER TABLE [dbo].[CubeDirtyPartitionInfo] ADD CONSTRAINT [DF__CubeDirty__Parti__26DC3B7D] DEFAULT ('') FOR [PartitionNames]; GO
ALTER TABLE [dbo].[CubeDirtyPartitionInfo] ADD CONSTRAINT [DF__CubeDirty__Start__27D05FB6] DEFAULT (getutcdate()) FOR [StartTimeUtc]; GO
ALTER TABLE [dbo].[CubeDirtyPartitionInfo] ADD CONSTRAINT [DF__CubeDirty__LastS__28C483EF] DEFAULT ((0)) FOR [LastSuccessfulChangeTrackingID]; GO
ALTER TABLE [dbo].[CubeDirtyPartitionInfo] ADD CONSTRAINT [DF__CubeDirty__Curre__29B8A828] DEFAULT ((0)) FOR [CurrentChangeTrackingID]; GO
ALTER TABLE [dbo].[CubeDirtyPartitionInfo] ADD CONSTRAINT [DF__CubeDirty__CubeP__2AACCC61] DEFAULT ((0)) FOR [CubeProcessSuccess]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CubeIncrementalProcessMeasureGroups ------------------
---------------------------------------------
CREATE TABLE [dbo].[CubeIncrementalProcessMeasureGroups] (
[RowID] int NOT NULL,
[MeasureGroupID] nvarchar(800) NOT NULL,
PRIMARY KEY ([RowID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.CubeMeasureGroupDefaultMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[CubeMeasureGroupDefaultMeasure] (
[CubeMeasureGroupDefaultMeasureID] int NOT NULL,
[CubeName] nvarchar(100) NOT NULL,
[MeasureGroupName] nvarchar(100) NOT NULL,
[DefaultMeasureMDX] nvarchar(400) NOT NULL,
PRIMARY KEY ([CubeMeasureGroupDefaultMeasureID])
);
CREATE UNIQUE NONCLUSTERED INDEX [UQ_CUBENAMEMEASUREGROUPNAME] ON [dbo].[CubeMeasureGroupDefaultMeasure] ([CubeName], [MeasureGroupName]);
GO
ALTER TABLE [dbo].[CubeMeasureGroupDefaultMeasure] ADD CONSTRAINT [DF__CubeMeasu__Defau__00950485] DEFAULT ('') FOR [DefaultMeasureMDX]; GO
ALTER TABLE [dbo].[CubeMeasureGroupDefaultMeasure] ADD CONSTRAINT [DF__CubeMeasu__CubeN__7EACBC13] DEFAULT ('') FOR [CubeName]; GO
ALTER TABLE [dbo].[CubeMeasureGroupDefaultMeasure] ADD CONSTRAINT [DF__CubeMeasu__Measu__7FA0E04C] DEFAULT ('') FOR [MeasureGroupName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CubeUserRole ------------------
---------------------------------------------
CREATE TABLE [dbo].[CubeUserRole] (
[CubeUserRoleGUID] uniqueidentifier NOT NULL,
[RoleName] nvarchar(100) NOT NULL,
[ServerName] nvarchar(400) NOT NULL,
[DatabaseName] nvarchar(400) NOT NULL,
[UserGroupGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([CubeUserRoleGUID])
);
GO
ALTER TABLE [dbo].[CubeUserRole] ADD CONSTRAINT [FK__CubeUserR__UserG__2BF9C16D] FOREIGN KEY ([UserGroupGUID]) REFERENCES [dbo].[UserGroup] ([UserGroupGUID]); GO
ALTER TABLE [dbo].[CubeUserRole] ADD CONSTRAINT [DF__CubeUserR__Serve__258A58FB] DEFAULT ('') FOR [ServerName]; GO
ALTER TABLE [dbo].[CubeUserRole] ADD CONSTRAINT [DF__CubeUserR__Datab__267E7D34] DEFAULT ('') FOR [DatabaseName]; GO
ALTER TABLE [dbo].[CubeUserRole] ADD CONSTRAINT [DF__CubeUserR__CubeU__45380E7E] DEFAULT (newid()) FOR [CubeUserRoleGUID]; GO
ALTER TABLE [dbo].[CubeUserRole] ADD CONSTRAINT [DF__CubeUserR__RoleN__48147B29] DEFAULT ('') FOR [RoleName]; GO
ALTER TABLE [dbo].[CubeUserRole] ADD CONSTRAINT [DF__CubeUserR__UserG__2B059D34] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGroupGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CurrentUser ------------------
---------------------------------------------
CREATE TABLE [dbo].[CurrentUser] (
[TokenGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[MachineGUID] uniqueidentifier NOT NULL,
[TokenType] int NOT NULL,
[UserName] nvarchar(64) NOT NULL,
[IPAddress] nvarchar(100) NOT NULL,
[LoginStampUtc] datetime NOT NULL,
[LastActionStampUtc] datetime NOT NULL,
[IdentityServerSessionId] nvarchar(100) NULL,
PRIMARY KEY ([TokenGUID])
);
GO
ALTER TABLE [dbo].[CurrentUser] ADD CONSTRAINT [DF_CurrentUser_UserName] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[CurrentUser] ADD CONSTRAINT [DF__CurrentUs__IPAdd__39D3430C] DEFAULT ('') FOR [IPAddress]; GO
ALTER TABLE [dbo].[CurrentUser] ADD CONSTRAINT [DF_CurrentUser_MachineGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MachineGUID]; GO
ALTER TABLE [dbo].[CurrentUser] ADD CONSTRAINT [DF_CurrentUser_TokenType] DEFAULT ((0)) FOR [TokenType]; GO
ALTER TABLE [dbo].[CurrentUser] ADD CONSTRAINT [DF__CurrentUs__Login__53368182] DEFAULT (getutcdate()) FOR [LoginStampUtc]; GO
ALTER TABLE [dbo].[CurrentUser] ADD CONSTRAINT [DF__CurrentUs__LastA__542AA5BB] DEFAULT (getutcdate()) FOR [LastActionStampUtc]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CustomAction ------------------
---------------------------------------------
CREATE TABLE [dbo].[CustomAction] (
[ActionGUID] uniqueidentifier NOT NULL,
[AssemblyName] nvarchar(450) NOT NULL,
[ClassName] nvarchar(450) NOT NULL,
[Metadata] nvarchar(max) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[ActionType] int NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[Confirmation] nvarchar(450) NOT NULL,
[SuccessMessage] nvarchar(450) NOT NULL,
[IsUsingContext] bit NOT NULL,
[IconKey] int NOT NULL,
PRIMARY KEY ([ActionGUID])
);
GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_ACTIONGUID] DEFAULT (newid()) FOR [ActionGUID]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_ASSEMBLYNAME] DEFAULT ('') FOR [AssemblyName]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_CLASSNAME] DEFAULT ('') FOR [ClassName]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_ICONKEY] DEFAULT ((0)) FOR [IconKey]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_METADATA] DEFAULT ('') FOR [Metadata]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_ACTIONTYPE] DEFAULT ((1)) FOR [ActionType]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_FolderGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_Confirmation] DEFAULT ('') FOR [Confirmation]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_SuccessMessage] DEFAULT ('') FOR [SuccessMessage]; GO
ALTER TABLE [dbo].[CustomAction] ADD CONSTRAINT [DF_CustomAction_IsUsingContext] DEFAULT ((1)) FOR [IsUsingContext]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CustomMenu ------------------
---------------------------------------------
CREATE TABLE [dbo].[CustomMenu] (
[CustomMenuGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[PageID] nvarchar(64) NOT NULL,
[Type] int NOT NULL,
[IsGlobal] bit NOT NULL,
PRIMARY KEY ([CustomMenuGUID])
);
GO
ALTER TABLE [dbo].[CustomMenu] ADD CONSTRAINT [DF_Table_1_WORKSPACETOOLBARGUID] DEFAULT (newid()) FOR [CustomMenuGUID]; GO
ALTER TABLE [dbo].[CustomMenu] ADD CONSTRAINT [DF_CustomMenu_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[CustomMenu] ADD CONSTRAINT [DF_CustomMenu_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[CustomMenu] ADD CONSTRAINT [DF_CustomMenu_PAGEID] DEFAULT ('') FOR [PageID]; GO
ALTER TABLE [dbo].[CustomMenu] ADD CONSTRAINT [DF_CustomMenu_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[CustomMenu] ADD CONSTRAINT [DF_CustomMenu_ISGLOBAL] DEFAULT ((0)) FOR [IsGlobal]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CustomMenuContent ------------------
---------------------------------------------
CREATE TABLE [dbo].[CustomMenuContent] (
[CustomMenuContentGUID] uniqueidentifier NOT NULL,
[CustomMenuGUID] uniqueidentifier NOT NULL,
[ContentXML] xml NOT NULL,
PRIMARY KEY ([CustomMenuContentGUID])
);
GO
ALTER TABLE [dbo].[CustomMenuContent] ADD CONSTRAINT [FK_CustomMenuContent_CustomMenu] FOREIGN KEY ([CustomMenuGUID]) REFERENCES [dbo].[CustomMenu] ([CustomMenuGUID]); GO
ALTER TABLE [dbo].[CustomMenuContent] ADD CONSTRAINT [DF_CustomMenuContent_CUSTOMMENUCONTENTGUID] DEFAULT (newid()) FOR [CustomMenuContentGUID]; GO
ALTER TABLE [dbo].[CustomMenuContent] ADD CONSTRAINT [DF_CustomMenuContent_CUSTOMMENUGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CustomMenuGUID]; GO
ALTER TABLE [dbo].[CustomMenuContent] ADD CONSTRAINT [DF_CustomMenuContent_CONTENTXML] DEFAULT ('') FOR [ContentXML]; GO
---------------------------------------------
---------------------------------------------
-- dbo.CustomScript ------------------
---------------------------------------------
CREATE TABLE [dbo].[CustomScript] (
[CustomScriptGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[TimeoutSeconds] int NOT NULL,
[ScriptText] nvarchar(max) NOT NULL,
[IsSynchronous] bit NOT NULL,
[ScriptType] int NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([CustomScriptGUID])
);
GO
ALTER TABLE [dbo].[CustomScript] ADD CONSTRAINT [DF_CustomScript_Type] DEFAULT ((0)) FOR [ScriptType]; GO
ALTER TABLE [dbo].[CustomScript] ADD CONSTRAINT [DF_CustomScript_IsSynchronous] DEFAULT ((1)) FOR [IsSynchronous]; GO
ALTER TABLE [dbo].[CustomScript] ADD CONSTRAINT [DF__CustomScr__Globa__5378DED8] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[CustomScript] ADD CONSTRAINT [DF_CustomScript_CustomSCRIPT] DEFAULT (newid()) FOR [CustomScriptGUID]; GO
ALTER TABLE [dbo].[CustomScript] ADD CONSTRAINT [DF_CustomScript_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[CustomScript] ADD CONSTRAINT [DF_CustomScript_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[CustomScript] ADD CONSTRAINT [DF_CustomScript_ScriptText] DEFAULT ('') FOR [ScriptText]; GO
ALTER TABLE [dbo].[CustomScript] ADD CONSTRAINT [DF_CustomScript_TimeoutSeconds] DEFAULT ((60)) FOR [TimeoutSeconds]; GO
ALTER TABLE [dbo].[CustomScript] ADD CONSTRAINT [DF__CustomScr__Folde__6776813B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DBSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[DBSetting] (
[DBSettingGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(128) NOT NULL,
[Setting] nvarchar(4000) NOT NULL,
[LastModifiedDate] datetime NOT NULL,
[IsUserEditable] bit NOT NULL,
[IsUserReadable] bit NOT NULL,
[FriendlyName] nvarchar(64) NOT NULL,
PRIMARY KEY ([DBSettingGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_DBSetting] ON [dbo].[DBSetting] ([Name]);
GO
ALTER TABLE [dbo].[DBSetting] ADD CONSTRAINT [DF_DBSetting_IsUserEditable] DEFAULT ((0)) FOR [IsUserEditable]; GO
ALTER TABLE [dbo].[DBSetting] ADD CONSTRAINT [DF_DBSetting_IsUserReadDenied] DEFAULT ((0)) FOR [IsUserReadable]; GO
ALTER TABLE [dbo].[DBSetting] ADD CONSTRAINT [DF_DBSetting_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[DBSetting] ADD CONSTRAINT [DF_DBSetting_DBSETTINGGUID] DEFAULT (newid()) FOR [DBSettingGUID]; GO
ALTER TABLE [dbo].[DBSetting] ADD CONSTRAINT [DF_DBSetting_LASTMODIFIEDDATE] DEFAULT (getdate()) FOR [LastModifiedDate]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DCInputConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[DCInputConfig] (
[InputConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[InputPluginAssembly] nvarchar(256) NOT NULL,
[InputPluginXML] nvarchar(max) NOT NULL,
[DCTableGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([InputConfigGUID])
);
GO
ALTER TABLE [dbo].[DCInputConfig] ADD CONSTRAINT [DF_DCInputConfig_INPUTCONFIGGUID] DEFAULT (newid()) FOR [InputConfigGUID]; GO
ALTER TABLE [dbo].[DCInputConfig] ADD CONSTRAINT [DF_DCInputConfig_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DCInputConfig] ADD CONSTRAINT [DF_DCInputConfig_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[DCInputConfig] ADD CONSTRAINT [DF_DCInputConfig_INPUTPLUGINSOURCE] DEFAULT ('') FOR [InputPluginAssembly]; GO
ALTER TABLE [dbo].[DCInputConfig] ADD CONSTRAINT [DF_DCInputConfig_INPUTPLUGINXML] DEFAULT ('') FOR [InputPluginXML]; GO
ALTER TABLE [dbo].[DCInputConfig] ADD CONSTRAINT [DF_DCInputConfig_DCTABLEGUID] DEFAULT (newid()) FOR [DCTableGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DCOutputConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[DCOutputConfig] (
[OutputConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[OutputPluginAssembly] nvarchar(256) NOT NULL,
[OutputPluginXML] nvarchar(max) NOT NULL,
[LastRunDate] datetime NOT NULL,
PRIMARY KEY ([OutputConfigGUID])
);
GO
ALTER TABLE [dbo].[DCOutputConfig] ADD CONSTRAINT [DF_DCOutputConfig_OUTPUTCONFIGGUID] DEFAULT (newid()) FOR [OutputConfigGUID]; GO
ALTER TABLE [dbo].[DCOutputConfig] ADD CONSTRAINT [DF_DCOutputConfig_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DCOutputConfig] ADD CONSTRAINT [DF_DCOutputConfig_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[DCOutputConfig] ADD CONSTRAINT [DF_DCOutputConfig_OUTPUTPLUGINASSEMBLY] DEFAULT ('') FOR [OutputPluginAssembly]; GO
ALTER TABLE [dbo].[DCOutputConfig] ADD CONSTRAINT [DF_DCOutputConfig_OUTPUTPLUGINXML] DEFAULT ('') FOR [OutputPluginXML]; GO
ALTER TABLE [dbo].[DCOutputConfig] ADD CONSTRAINT [DF_DCOutputConfig_LASTRUNDATE] DEFAULT ('1/1/2000') FOR [LastRunDate]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DCTable ------------------
---------------------------------------------
CREATE TABLE [dbo].[DCTable] (
[TableGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[Source] nvarchar(256) NOT NULL,
[DateCreated] datetime NOT NULL,
[LastUpdatedDate] datetime NOT NULL,
PRIMARY KEY ([TableGUID])
);
GO
ALTER TABLE [dbo].[DCTable] ADD CONSTRAINT [DF_DATACENTERTABLE_DATACENTERTABLEGUID] DEFAULT (newid()) FOR [TableGUID]; GO
ALTER TABLE [dbo].[DCTable] ADD CONSTRAINT [DF_DATACENTERTABLE_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DCTable] ADD CONSTRAINT [DF_DATACENTERTABLE_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[DCTable] ADD CONSTRAINT [DF_DCTable_FILENAME] DEFAULT ('') FOR [Source]; GO
ALTER TABLE [dbo].[DCTable] ADD CONSTRAINT [DF_DCTable_DATECREATED] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[DCTable] ADD CONSTRAINT [DF_DCTable_LASTUPDATEDDATE] DEFAULT ('1/1/2000') FOR [LastUpdatedDate]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DashboardWidget ------------------
---------------------------------------------
CREATE TABLE [dbo].[DashboardWidget] (
[DashboardWidgetGUID] uniqueidentifier NOT NULL,
[DesktopTemplateGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Row] int NOT NULL,
[Col] int NOT NULL,
[Height] int NOT NULL,
[Width] int NOT NULL,
[WidgetJSON] nvarchar(max) NOT NULL,
[WidgetClassName] nvarchar(100) NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([DashboardWidgetGUID])
);
GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [FK__Dashboard__Deskt__05EB2160] FOREIGN KEY ([DesktopTemplateGUID]) REFERENCES [dbo].[DesktopTemplate] ([DesktopTemplateGUID]); GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__Dashboard__Dashb__0402D8EE] DEFAULT (newid()) FOR [DashboardWidgetGUID]; GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__Dashboard__Deskt__04F6FD27] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DesktopTemplateGUID]; GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__DashboardW__Name__06DF4599] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__DashboardWi__Row__07D369D2] DEFAULT ((0)) FOR [Row]; GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__DashboardWi__Col__08C78E0B] DEFAULT ((0)) FOR [Col]; GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__Dashboard__Heigh__09BBB244] DEFAULT ((0)) FOR [Height]; GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__Dashboard__Width__0AAFD67D] DEFAULT ((0)) FOR [Width]; GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__Dashboard__Widge__0B39E662] DEFAULT ('') FOR [WidgetJSON]; GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__Dashboard__Widge__0C2E0A9B] DEFAULT ('') FOR [WidgetClassName]; GO
ALTER TABLE [dbo].[DashboardWidget] ADD CONSTRAINT [DF__Dashboard__DataS__404D9876] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataSourceGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DashboardWidgetCache ------------------
---------------------------------------------
CREATE TABLE [dbo].[DashboardWidgetCache] (
[DashboardWidgetCacheGUID] uniqueidentifier NOT NULL,
[DashboardWidgetGUID] uniqueidentifier NOT NULL,
[DesktopTemplateGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[Data] nvarchar(max) NOT NULL,
[DateCreated] datetime NOT NULL,
[DateCreatedUtc] datetime NOT NULL,
PRIMARY KEY ([DashboardWidgetCacheGUID])
);
GO
ALTER TABLE [dbo].[DashboardWidgetCache] ADD CONSTRAINT [FK__Dashboard__Dashb__38AC76AE] FOREIGN KEY ([DashboardWidgetGUID]) REFERENCES [dbo].[DashboardWidget] ([DashboardWidgetGUID]); GO
ALTER TABLE [dbo].[DashboardWidgetCache] ADD CONSTRAINT [DF__Dashboard__Dashb__36C42E3C] DEFAULT (newid()) FOR [DashboardWidgetCacheGUID]; GO
ALTER TABLE [dbo].[DashboardWidgetCache] ADD CONSTRAINT [DF__Dashboard__DateC__378E670D] DEFAULT (getutcdate()) FOR [DateCreatedUtc]; GO
ALTER TABLE [dbo].[DashboardWidgetCache] ADD CONSTRAINT [DF__Dashboard__Dashb__37B85275] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DashboardWidgetGUID]; GO
ALTER TABLE [dbo].[DashboardWidgetCache] ADD CONSTRAINT [DF__Dashboard__Deskt__39A09AE7] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DesktopTemplateGUID]; GO
ALTER TABLE [dbo].[DashboardWidgetCache] ADD CONSTRAINT [DF__Dashboard__UserG__3A94BF20] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[DashboardWidgetCache] ADD CONSTRAINT [DF__DashboardW__Data__3B88E359] DEFAULT ('') FOR [Data]; GO
ALTER TABLE [dbo].[DashboardWidgetCache] ADD CONSTRAINT [DF__Dashboard__DateC__3C7D0792] DEFAULT (getdate()) FOR [DateCreated]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataCenterCustomReportLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataCenterCustomReportLink] (
[ReportLinkGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[ModuleGUID] uniqueidentifier NOT NULL,
[TileGlobalID] varchar(100) NOT NULL,
PRIMARY KEY ([ReportLinkGUID])
);
GO
ALTER TABLE [dbo].[DataCenterCustomReportLink] ADD CONSTRAINT [FK__DataCente__Modul__1893E180] FOREIGN KEY ([ModuleGUID]) REFERENCES [dbo].[SystemCenterModule] ([ModuleGUID]); GO
ALTER TABLE [dbo].[DataCenterCustomReportLink] ADD CONSTRAINT [FK__DataCente__Repor__179FBD47] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[DataCenterCustomReportLink] ADD CONSTRAINT [DF__DataCente__Repor__16AB990E] DEFAULT (newid()) FOR [ReportLinkGUID]; GO
ALTER TABLE [dbo].[DataCenterCustomReportLink] ADD CONSTRAINT [DF__DataCente__TileG__22682FD4] DEFAULT ('') FOR [TileGlobalID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataCenterCustomReportWorkbookLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataCenterCustomReportWorkbookLink] (
[ReportLinkGUID] uniqueidentifier NOT NULL,
[ModuleGUID] uniqueidentifier NOT NULL,
[TileGlobalID] nvarchar(100) NOT NULL,
[WorkbookID] int NOT NULL,
PRIMARY KEY ([ReportLinkGUID])
);
GO
ALTER TABLE [dbo].[DataCenterCustomReportWorkbookLink] ADD CONSTRAINT [FK_CustomReportWorkbook_Module] FOREIGN KEY ([ModuleGUID]) REFERENCES [dbo].[SystemCenterModule] ([ModuleGUID]); GO
ALTER TABLE [dbo].[DataCenterCustomReportWorkbookLink] ADD CONSTRAINT [DF__DataCente__Repor__7C3C8FC8] DEFAULT (newid()) FOR [ReportLinkGUID]; GO
ALTER TABLE [dbo].[DataCenterCustomReportWorkbookLink] ADD CONSTRAINT [DF__DataCente__TileG__7D30B401] DEFAULT ('') FOR [TileGlobalID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataCenterDimensionConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataCenterDimensionConfig] (
[DimensionName] nvarchar(200) NOT NULL,
[DataCenterPageName] nvarchar(200) NOT NULL,
[SystemCenterStepGlobalIDExisting] nvarchar(100) NOT NULL,
[SystemCenterStepGlobalIDNew] nvarchar(100) NOT NULL,
PRIMARY KEY ([DimensionName])
);
GO
ALTER TABLE [dbo].[DataCenterDimensionConfig] ADD CONSTRAINT [DF__DataCente__DataC__02C4CDBC] DEFAULT ('') FOR [DataCenterPageName]; GO
ALTER TABLE [dbo].[DataCenterDimensionConfig] ADD CONSTRAINT [DF__DataCente__Syste__03B8F1F5] DEFAULT ('') FOR [SystemCenterStepGlobalIDExisting]; GO
ALTER TABLE [dbo].[DataCenterDimensionConfig] ADD CONSTRAINT [DF__DataCente__Syste__04AD162E] DEFAULT ('') FOR [SystemCenterStepGlobalIDNew]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataDictionaryFieldValueExample ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataDictionaryFieldValueExample] (
[ScoreGUID] uniqueidentifier NOT NULL,
[ExampleValue] nvarchar(4000) NOT NULL,
PRIMARY KEY ([ScoreGUID])
);
GO
ALTER TABLE [dbo].[DataDictionaryFieldValueExample] ADD CONSTRAINT [DF_DataDictionaryFieldValueExample_ScoreGUID] DEFAULT (newid()) FOR [ScoreGUID]; GO
ALTER TABLE [dbo].[DataDictionaryFieldValueExample] ADD CONSTRAINT [DF_DataDictionaryFieldValueExample_ExampleValue] DEFAULT ('') FOR [ExampleValue]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataPathFile ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataPathFile] (
[FileGUID] uniqueidentifier NOT NULL,
[FullPath] varchar(450) NOT NULL,
[FileName] varchar(450) NOT NULL,
[CreationTime] datetime NOT NULL,
[LastModifiedTime] datetime NOT NULL,
[Data] varbinary(max) NOT NULL,
[IsLocked] bit NOT NULL,
[LockTime] datetime NOT NULL,
[LockOwner] uniqueidentifier NOT NULL,
PRIMARY KEY ([FileGUID])
);
CREATE UNIQUE CLUSTERED INDEX [IDX_DataPathFile] ON [dbo].[DataPathFile] ([FullPath]);
GO
ALTER TABLE [dbo].[DataPathFile] ADD CONSTRAINT [DF_DataPathFile_LockOwner] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LockOwner]; GO
ALTER TABLE [dbo].[DataPathFile] ADD CONSTRAINT [DF_DataPathFile_IsLocked] DEFAULT ((0)) FOR [IsLocked]; GO
ALTER TABLE [dbo].[DataPathFile] ADD CONSTRAINT [DF_DataPathFile_LockTime] DEFAULT (getdate()) FOR [LockTime]; GO
ALTER TABLE [dbo].[DataPathFile] ADD CONSTRAINT [DF_DataPathFile_CreationTime] DEFAULT (getdate()) FOR [CreationTime]; GO
ALTER TABLE [dbo].[DataPathFile] ADD CONSTRAINT [DF_DataPathFile_LastModifiedTime] DEFAULT (getdate()) FOR [LastModifiedTime]; GO
ALTER TABLE [dbo].[DataPathFile] ADD CONSTRAINT [DF_DataPathFile_FileGUID] DEFAULT (newid()) FOR [FileGUID]; GO
ALTER TABLE [dbo].[DataPathFile] ADD CONSTRAINT [DF_DataPathFile_FullPath] DEFAULT ('') FOR [FullPath]; GO
ALTER TABLE [dbo].[DataPathFile] ADD CONSTRAINT [DF_DataPathFile_FileName] DEFAULT ('') FOR [FileName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataPathFile_History ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataPathFile_History] (
[FileGUID] uniqueidentifier NOT NULL,
[FullPath] varchar(450) NOT NULL,
[FileName] varchar(450) NOT NULL,
[CreationTime] datetime NOT NULL,
[LastModifiedTime] datetime NOT NULL,
[Data] varbinary(max) NOT NULL,
[IsLocked] bit NOT NULL,
[LockTime] datetime NOT NULL,
[LockOwner] uniqueidentifier NOT NULL,
PRIMARY KEY ([FileGUID])
);
CREATE CLUSTERED INDEX [C_DataPathFile_History] ON [dbo].[DataPathFile_History] ([FullPath], [LockOwner], [IsLocked]);
CREATE NONCLUSTERED INDEX [NCNU_FullPath] ON [dbo].[DataPathFile_History] ([FullPath]);
GO
ALTER TABLE [dbo].[DataPathFile_History] ADD CONSTRAINT [DF_DataPathFile_History_FileGUID] DEFAULT (newid()) FOR [FileGUID]; GO
ALTER TABLE [dbo].[DataPathFile_History] ADD CONSTRAINT [DF_DataPathFile_History_FullPath] DEFAULT ('') FOR [FullPath]; GO
ALTER TABLE [dbo].[DataPathFile_History] ADD CONSTRAINT [DF_DataPathFile_History_FileName] DEFAULT ('') FOR [FileName]; GO
ALTER TABLE [dbo].[DataPathFile_History] ADD CONSTRAINT [DF_DataPathFile_History_CreationTime] DEFAULT (getdate()) FOR [CreationTime]; GO
ALTER TABLE [dbo].[DataPathFile_History] ADD CONSTRAINT [DF_DataPathFile_History_LastModifiedTime] DEFAULT (getdate()) FOR [LastModifiedTime]; GO
ALTER TABLE [dbo].[DataPathFile_History] ADD CONSTRAINT [DF_DataPathFile_History_IsLocked] DEFAULT ((0)) FOR [IsLocked]; GO
ALTER TABLE [dbo].[DataPathFile_History] ADD CONSTRAINT [DF_DataPathFile_History_LockTime] DEFAULT (getdate()) FOR [LockTime]; GO
ALTER TABLE [dbo].[DataPathFile_History] ADD CONSTRAINT [DF_DataPathFile_History_LockOwner] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LockOwner]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataPathFile_Improv ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataPathFile_Improv] (
[FileGUID] uniqueidentifier NOT NULL,
[FullPath] varchar(450) NOT NULL,
[FileName] varchar(450) NOT NULL,
[CreationTime] datetime NOT NULL,
[LastModifiedTime] datetime NOT NULL,
[Data] varbinary(max) NOT NULL,
[IsLocked] bit NOT NULL,
[LockTime] datetime NOT NULL,
[LockOwner] uniqueidentifier NOT NULL,
PRIMARY KEY ([FileGUID])
);
CREATE CLUSTERED INDEX [C_DataPathFile_Improv] ON [dbo].[DataPathFile_Improv] ([FullPath], [LockOwner], [IsLocked]);
CREATE NONCLUSTERED INDEX [NCNU_FullPath] ON [dbo].[DataPathFile_Improv] ([FullPath]);
GO
ALTER TABLE [dbo].[DataPathFile_Improv] ADD CONSTRAINT [DF_DataPathFile_Improv_FileGUID] DEFAULT (newid()) FOR [FileGUID]; GO
ALTER TABLE [dbo].[DataPathFile_Improv] ADD CONSTRAINT [DF_DataPathFile_Improv_FullPath] DEFAULT ('') FOR [FullPath]; GO
ALTER TABLE [dbo].[DataPathFile_Improv] ADD CONSTRAINT [DF_DataPathFile_Improv_FileName] DEFAULT ('') FOR [FileName]; GO
ALTER TABLE [dbo].[DataPathFile_Improv] ADD CONSTRAINT [DF_DataPathFile_Improv_CreationTime] DEFAULT (getdate()) FOR [CreationTime]; GO
ALTER TABLE [dbo].[DataPathFile_Improv] ADD CONSTRAINT [DF_DataPathFile_Improv_LastModifiedTime] DEFAULT (getdate()) FOR [LastModifiedTime]; GO
ALTER TABLE [dbo].[DataPathFile_Improv] ADD CONSTRAINT [DF_DataPathFile_Improv_IsLocked] DEFAULT ((0)) FOR [IsLocked]; GO
ALTER TABLE [dbo].[DataPathFile_Improv] ADD CONSTRAINT [DF_DataPathFile_Improv_LockTime] DEFAULT (getdate()) FOR [LockTime]; GO
ALTER TABLE [dbo].[DataPathFile_Improv] ADD CONSTRAINT [DF_DataPathFile_Improv_LockOwner] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LockOwner]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataPathFile_ModelTemplate ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataPathFile_ModelTemplate] (
[FileGUID] uniqueidentifier NOT NULL,
[FullPath] varchar(450) NOT NULL,
[FileName] varchar(450) NOT NULL,
[CreationTime] datetime NOT NULL,
[LastModifiedTime] datetime NOT NULL,
[Data] varbinary(max) NOT NULL,
[IsLocked] bit NOT NULL,
[LockTime] datetime NOT NULL,
[LockOwner] uniqueidentifier NOT NULL,
PRIMARY KEY ([FileGUID])
);
CREATE NONCLUSTERED INDEX [NCNU_FullPath] ON [dbo].[DataPathFile_ModelTemplate] ([FullPath]);
GO
ALTER TABLE [dbo].[DataPathFile_ModelTemplate] ADD CONSTRAINT [DF_DataPathFile_ModelTemplate_FileGUID] DEFAULT (newid()) FOR [FileGUID]; GO
ALTER TABLE [dbo].[DataPathFile_ModelTemplate] ADD CONSTRAINT [DF_DataPathFile_ModelTemplate_FullPath] DEFAULT ('') FOR [FullPath]; GO
ALTER TABLE [dbo].[DataPathFile_ModelTemplate] ADD CONSTRAINT [DF_DataPathFile_ModelTemplate_LockOwner] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LockOwner]; GO
ALTER TABLE [dbo].[DataPathFile_ModelTemplate] ADD CONSTRAINT [DF_DataPathFile_ModelTemplate_FileName] DEFAULT ('') FOR [FileName]; GO
ALTER TABLE [dbo].[DataPathFile_ModelTemplate] ADD CONSTRAINT [DF_DataPathFile_ModelTemplate_CreationTime] DEFAULT (getdate()) FOR [CreationTime]; GO
ALTER TABLE [dbo].[DataPathFile_ModelTemplate] ADD CONSTRAINT [DF_DataPathFile_ModelTemplate_LastModifiedTime] DEFAULT (getdate()) FOR [LastModifiedTime]; GO
ALTER TABLE [dbo].[DataPathFile_ModelTemplate] ADD CONSTRAINT [DF_DataPathFile_ModelTemplate_IsLocked] DEFAULT ((0)) FOR [IsLocked]; GO
ALTER TABLE [dbo].[DataPathFile_ModelTemplate] ADD CONSTRAINT [DF_DataPathFile_ModelTemplate_LockTime] DEFAULT (getdate()) FOR [LockTime]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataPathFile_Reporting ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataPathFile_Reporting] (
[FileGUID] uniqueidentifier NOT NULL,
[FullPath] varchar(450) NOT NULL,
[FileName] varchar(450) NOT NULL,
[CreationTime] datetime NOT NULL,
[LastModifiedTime] datetime NOT NULL,
[Data] varbinary(max) NOT NULL,
[IsLocked] bit NOT NULL,
[LockTime] datetime NOT NULL,
[LockOwner] uniqueidentifier NOT NULL,
PRIMARY KEY ([FileGUID])
);
CREATE CLUSTERED INDEX [C_DataPathFile_Reporting] ON [dbo].[DataPathFile_Reporting] ([FullPath], [LockOwner], [IsLocked]);
CREATE NONCLUSTERED INDEX [NCNU_FullPath] ON [dbo].[DataPathFile_Reporting] ([FullPath]);
GO
ALTER TABLE [dbo].[DataPathFile_Reporting] ADD CONSTRAINT [DF_DataPathFile_Reporting_LockOwner] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LockOwner]; GO
ALTER TABLE [dbo].[DataPathFile_Reporting] ADD CONSTRAINT [DF_DataPathFile_Reporting_FileGUID] DEFAULT (newid()) FOR [FileGUID]; GO
ALTER TABLE [dbo].[DataPathFile_Reporting] ADD CONSTRAINT [DF_DataPathFile_Reporting_FullPath] DEFAULT ('') FOR [FullPath]; GO
ALTER TABLE [dbo].[DataPathFile_Reporting] ADD CONSTRAINT [DF_DataPathFile_Reporting_FileName] DEFAULT ('') FOR [FileName]; GO
ALTER TABLE [dbo].[DataPathFile_Reporting] ADD CONSTRAINT [DF_DataPathFile_Reporting_CreationTime] DEFAULT (getdate()) FOR [CreationTime]; GO
ALTER TABLE [dbo].[DataPathFile_Reporting] ADD CONSTRAINT [DF_DataPathFile_Reporting_LastModifiedTime] DEFAULT (getdate()) FOR [LastModifiedTime]; GO
ALTER TABLE [dbo].[DataPathFile_Reporting] ADD CONSTRAINT [DF_DataPathFile_Reporting_IsLocked] DEFAULT ((0)) FOR [IsLocked]; GO
ALTER TABLE [dbo].[DataPathFile_Reporting] ADD CONSTRAINT [DF_DataPathFile_Reporting_LockTime] DEFAULT (getdate()) FOR [LockTime]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataSourceContent ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataSourceContent] (
[DataSourceContentGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[ParentGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[AssemblyQualifiedName] nvarchar(450) NOT NULL,
[LastRefreshDate] datetime NOT NULL,
[SetupXML] nvarchar(max) NOT NULL,
[DataXML] nvarchar(max) NOT NULL,
PRIMARY KEY ([DataSourceContentGUID])
);
GO
ALTER TABLE [dbo].[DataSourceContent] ADD CONSTRAINT [DF_DataSourceContent_DATASOURCECONTENTGUID] DEFAULT (newid()) FOR [DataSourceContentGUID]; GO
ALTER TABLE [dbo].[DataSourceContent] ADD CONSTRAINT [DF_DataSourceContent_DATASOURCEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataSourceGUID]; GO
ALTER TABLE [dbo].[DataSourceContent] ADD CONSTRAINT [DF_DataSourceContent_PARENTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentGUID]; GO
ALTER TABLE [dbo].[DataSourceContent] ADD CONSTRAINT [DF_DataSourceContent_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DataSourceContent] ADD CONSTRAINT [DF_DataSourceContent_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[DataSourceContent] ADD CONSTRAINT [DF_DataSourceContent_ASSEMBLYQUALIFIEDNAME] DEFAULT ('') FOR [AssemblyQualifiedName]; GO
ALTER TABLE [dbo].[DataSourceContent] ADD CONSTRAINT [DF_DataSourceContent_SETUPXML] DEFAULT ('') FOR [SetupXML]; GO
ALTER TABLE [dbo].[DataSourceContent] ADD CONSTRAINT [DF_DataSourceContent_DATAXML] DEFAULT ('') FOR [DataXML]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DataView ------------------
---------------------------------------------
CREATE TABLE [dbo].[DataView] (
[DataViewGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[SQLViewName] nvarchar(450) NOT NULL,
[SourceGUID] uniqueidentifier NOT NULL,
[SourceType] int NOT NULL,
[SecurityColumns] nvarchar(450) NOT NULL,
[SampleTableGUID] uniqueidentifier NOT NULL,
[MetricColumnName] nvarchar(50) NOT NULL,
[PlanColumnName] nvarchar(100) NOT NULL,
[Description] nvarchar(2000) NOT NULL,
[FrameworkGUID] uniqueidentifier NOT NULL,
[IsOptionRecompile] bit NOT NULL,
PRIMARY KEY ([DataViewGUID])
);
GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF_DataView_PlanColumnName] DEFAULT ('') FOR [PlanColumnName]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF__DataView__Descri__2A6519D2] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF__DataView__Framew__3F59743D] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FrameworkGUID]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF_DataView_DataViewGUID] DEFAULT (newid()) FOR [DataViewGUID]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF_DataView_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF_DataView_SQLViewName] DEFAULT ('') FOR [SQLViewName]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF_DataView_SourceGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SourceGUID]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF_DataView_SourceType] DEFAULT ((0)) FOR [SourceType]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF_DataView_SecurityColumns] DEFAULT ('') FOR [SecurityColumns]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF_DataView_SampleTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SampleTableGUID]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF_DataView_MetricColumnName] DEFAULT ('') FOR [MetricColumnName]; GO
ALTER TABLE [dbo].[DataView] ADD CONSTRAINT [DF__DataView__IsOpti__7B3F1545] DEFAULT ((0)) FOR [IsOptionRecompile]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DateMap ------------------
---------------------------------------------
CREATE TABLE [dbo].[DateMap] (
[SourceDate] date NULL,
[TargetDate] date NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.DemoUser ------------------
---------------------------------------------
CREATE TABLE [dbo].[DemoUser] (
[UserGUID] uniqueidentifier NOT NULL,
[DisplayName] nvarchar(100) NOT NULL,
PRIMARY KEY ([UserGUID])
);
GO
ALTER TABLE [dbo].[DemoUser] ADD CONSTRAINT [FK_DemoUser_UserProfile] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[DemoUser] ADD CONSTRAINT [DF_DemoUser_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[DemoUser] ADD CONSTRAINT [DF_DemoUser_DisplayName] DEFAULT ('') FOR [DisplayName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DepartmentIDLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[DepartmentIDLog] (
[RowID] int NOT NULL,
[Step] nvarchar(100) NOT NULL,
[Type] nvarchar(10) NOT NULL,
[Script] nvarchar(max) NOT NULL,
[StartTime] datetime NULL,
[EndTime] datetime NULL,
[IsComplete] bit NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[DepartmentIDLog] ADD CONSTRAINT [DF_DepartmentIDLog_Step] DEFAULT ('') FOR [Step]; GO
ALTER TABLE [dbo].[DepartmentIDLog] ADD CONSTRAINT [DF_DepartmentIDLog_Type] DEFAULT ('') FOR [Type]; GO
ALTER TABLE [dbo].[DepartmentIDLog] ADD CONSTRAINT [DF_DepartmentIDLog_Script] DEFAULT ('') FOR [Script]; GO
ALTER TABLE [dbo].[DepartmentIDLog] ADD CONSTRAINT [DF_DepartmentIDLog_IsComplete] DEFAULT ((0)) FOR [IsComplete]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DesktopCategory ------------------
---------------------------------------------
CREATE TABLE [dbo].[DesktopCategory] (
[DesktopCategoryGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(50) NOT NULL,
[IconCls] nvarchar(50) NOT NULL,
[ModuleGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([DesktopCategoryGUID])
);
GO
ALTER TABLE [dbo].[DesktopCategory] ADD CONSTRAINT [DF__DesktopCa__Modul__1BE2221B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModuleGUID]; GO
ALTER TABLE [dbo].[DesktopCategory] ADD CONSTRAINT [DF_DesktopCategory_DesktopCategoryGUID] DEFAULT (newid()) FOR [DesktopCategoryGUID]; GO
ALTER TABLE [dbo].[DesktopCategory] ADD CONSTRAINT [DF_DesktopTemplateCategory_CategoryIconCls] DEFAULT ('') FOR [IconCls]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DesktopColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[DesktopColumn] (
[DesktopColumnGUID] uniqueidentifier NOT NULL,
[DesktopTemplateGUID] uniqueidentifier NOT NULL,
[WidthRatio] float NOT NULL,
[ColumnIndex] int NOT NULL,
PRIMARY KEY ([DesktopColumnGUID])
);
GO
ALTER TABLE [dbo].[DesktopColumn] ADD CONSTRAINT [FK_DesktopColumn_DesktopTemplate] FOREIGN KEY ([DesktopTemplateGUID]) REFERENCES [dbo].[DesktopTemplate] ([DesktopTemplateGUID]); GO
ALTER TABLE [dbo].[DesktopColumn] ADD CONSTRAINT [DF_DesktopColumn_DesktopColumnGUID] DEFAULT (newid()) FOR [DesktopColumnGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DesktopParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[DesktopParameter] (
[DesktopParameterGUID] uniqueidentifier NOT NULL,
[DesktopTemplateGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NOT NULL,
[ColumnName] nvarchar(200) NOT NULL,
[ParameterXML] nvarchar(max) NOT NULL,
[DimensionId] nvarchar(200) NOT NULL,
[AttributeId] nvarchar(200) NOT NULL,
[MeasureId] nvarchar(200) NOT NULL,
[ParameterValueAQN] nvarchar(400) NOT NULL,
[ReportGuidsCSV] nvarchar(max) NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[DimensionName] nvarchar(200) NOT NULL,
[AttributeName] nvarchar(200) NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[ExcludedWidgetGuidsCSV] nvarchar(max) NOT NULL,
PRIMARY KEY ([DesktopParameterGUID])
);
GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [FK__DesktopPa__Deskt__43084118] FOREIGN KEY ([DesktopTemplateGUID]) REFERENCES [dbo].[DesktopTemplate] ([DesktopTemplateGUID]); GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Exclu__30C13C23] DEFAULT ('') FOR [ExcludedWidgetGuidsCSV]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__UserG__33E7C191] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Deskt__42141CDF] DEFAULT (newid()) FOR [DesktopParameterGUID]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPar__Name__43FC6551] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Colum__44F0898A] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Param__45E4ADC3] DEFAULT ('') FOR [ParameterXML]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Dimen__46D8D1FC] DEFAULT ('') FOR [DimensionId]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Attri__47CCF635] DEFAULT ('') FOR [AttributeId]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Measu__48C11A6E] DEFAULT ('') FOR [MeasureId]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Param__49B53EA7] DEFAULT ('') FOR [ParameterValueAQN]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Repor__4AA962E0] DEFAULT ('') FOR [ReportGuidsCSV]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Dimen__53606CEA] DEFAULT ('') FOR [DimensionName]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__Attri__54549123] DEFAULT ('') FOR [AttributeName]; GO
ALTER TABLE [dbo].[DesktopParameter] ADD CONSTRAINT [DF__DesktopPa__DataS__5548B55C] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataSourceGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DesktopTemplate ------------------
---------------------------------------------
CREATE TABLE [dbo].[DesktopTemplate] (
[DesktopTemplateGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[ReadableUserCount] int NOT NULL,
[AuthorGUID] uniqueidentifier NOT NULL,
[ModuleGUID] uniqueidentifier NOT NULL,
[DateCreated] datetime NOT NULL,
[IsLegacy] bit NOT NULL,
[Description] nvarchar(450) NOT NULL,
[StrataSphereDashboardGUID] uniqueidentifier NOT NULL,
[DateCreatedUtc] datetime NOT NULL,
PRIMARY KEY ([DesktopTemplateGUID])
);
GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF__DesktopTe__Descr__0BA3FAB6] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF_DesktopTemplate_DesktopTemplateGUID_1] DEFAULT (newid()) FOR [DesktopTemplateGUID]; GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF_DesktopTemplate_Name_1] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF_DesktopTemplate_ReadableUserCount] DEFAULT ((1)) FOR [ReadableUserCount]; GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF__DesktopTe__DateC__38828B46] DEFAULT (getutcdate()) FOR [DateCreatedUtc]; GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF_DesktopTemplate_AuthorGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorGUID]; GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF__DesktopTe__Modul__7C61B726] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModuleGUID]; GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF__DesktopTe__DateC__7D55DB5F] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF__DesktopTe__IsLeg__7E49FF98] DEFAULT ((0)) FOR [IsLegacy]; GO
ALTER TABLE [dbo].[DesktopTemplate] ADD CONSTRAINT [DF_DesktopTemplate_StrataSphereDashboardGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [StrataSphereDashboardGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DesktopTemplateUserLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[DesktopTemplateUserLink] (
[DesktopTemplateGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[DisplayOrder] smallint NOT NULL,
[IsVisible] bit NOT NULL,
PRIMARY KEY ([DesktopTemplateGUID], [UserGUID])
);
GO
ALTER TABLE [dbo].[DesktopTemplateUserLink] ADD CONSTRAINT [FK_DesktopTemplateUserLink_DesktopTemplate] FOREIGN KEY ([DesktopTemplateGUID]) REFERENCES [dbo].[DesktopTemplate] ([DesktopTemplateGUID]); GO
ALTER TABLE [dbo].[DesktopTemplateUserLink] ADD CONSTRAINT [DF_DesktopTemplateUserLink_Visible] DEFAULT ((1)) FOR [IsVisible]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DesktopWidget ------------------
---------------------------------------------
CREATE TABLE [dbo].[DesktopWidget] (
[DesktopWidgetGUID] uniqueidentifier NOT NULL,
[DesktopTemplateGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[HelpText] nvarchar(4000) NOT NULL,
[IsCollapsed] bit NOT NULL,
[IsCollapsible] bit NOT NULL,
[IsMovable] bit NOT NULL,
[RowIndex] int NOT NULL,
[ColumnIndex] int NOT NULL,
[WidgetFullName] nvarchar(4000) NOT NULL,
[WidgetXML] nvarchar(max) NOT NULL,
[Height] int NOT NULL,
PRIMARY KEY ([DesktopWidgetGUID])
);
GO
ALTER TABLE [dbo].[DesktopWidget] ADD CONSTRAINT [FK_DesktopWidget_DesktopTemplate] FOREIGN KEY ([DesktopTemplateGUID]) REFERENCES [dbo].[DesktopTemplate] ([DesktopTemplateGUID]); GO
ALTER TABLE [dbo].[DesktopWidget] ADD CONSTRAINT [DF_DesktopWidget_DesktopWidgetGUID] DEFAULT (newid()) FOR [DesktopWidgetGUID]; GO
ALTER TABLE [dbo].[DesktopWidget] ADD CONSTRAINT [DF_DesktopWidget_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DesktopWidget] ADD CONSTRAINT [DF_DesktopWidget_HelpText] DEFAULT ('') FOR [HelpText]; GO
ALTER TABLE [dbo].[DesktopWidget] ADD CONSTRAINT [DF_DesktopWidget_IsCollapsed] DEFAULT ((0)) FOR [IsCollapsed]; GO
ALTER TABLE [dbo].[DesktopWidget] ADD CONSTRAINT [DF_DesktopWidget_Collapsible] DEFAULT ((0)) FOR [IsCollapsible]; GO
ALTER TABLE [dbo].[DesktopWidget] ADD CONSTRAINT [DF_DesktopWidget_Movable] DEFAULT ((1)) FOR [IsMovable]; GO
ALTER TABLE [dbo].[DesktopWidget] ADD CONSTRAINT [DF_DesktopWidget_RowIndex] DEFAULT ((0)) FOR [RowIndex]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DimensionInfo ------------------
---------------------------------------------
CREATE TABLE [dbo].[DimensionInfo] (
[DimensionGUID] uniqueidentifier NOT NULL,
[CubeStubGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Type] int NOT NULL,
PRIMARY KEY ([DimensionGUID], [CubeStubGUID])
);
GO
ALTER TABLE [dbo].[DimensionInfo] ADD CONSTRAINT [DF_DimensionInfo_DIMENSIONGUID] DEFAULT (newid()) FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[DimensionInfo] ADD CONSTRAINT [DF_DimensionInfo_CubeStubGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeStubGUID]; GO
ALTER TABLE [dbo].[DimensionInfo] ADD CONSTRAINT [DF_DimensionInfo_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[DimensionInfo] ADD CONSTRAINT [DF_DimensionInfo_DIMENSIONTYPE] DEFAULT ((0)) FOR [Type]; GO
---------------------------------------------
---------------------------------------------
-- dbo.DimensionMemberCleanupHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[DimensionMemberCleanupHistory] (
[RowID] bigint NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[UserName] varchar(128) NOT NULL,
[SourceTableName] varchar(200) NOT NULL,
[BackupTableName] varchar(200) NOT NULL,
[RequestDateTime] datetime NOT NULL,
[SessionSuffix] varchar(20) NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[DimensionMemberCleanupHistory] ADD CONSTRAINT [DF_DimensionMemberCleanupHistory_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[DimensionMemberCleanupHistory] ADD CONSTRAINT [DF_DimensionMemberCleanupHistory_UserName] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[DimensionMemberCleanupHistory] ADD CONSTRAINT [DF_DimensionMemberCleanupHistory_SourceTableName] DEFAULT ('') FOR [SourceTableName]; GO
ALTER TABLE [dbo].[DimensionMemberCleanupHistory] ADD CONSTRAINT [DF_DimensionMemberCleanupHistory_BackupTableName] DEFAULT ('') FOR [BackupTableName]; GO
ALTER TABLE [dbo].[DimensionMemberCleanupHistory] ADD CONSTRAINT [DF_DimensionMemberCleanupHistory_RequestDateTime] DEFAULT (getdate()) FOR [RequestDateTime]; GO
ALTER TABLE [dbo].[DimensionMemberCleanupHistory] ADD CONSTRAINT [DF_DimensionMemberCleanupHistory_SessionSuffix] DEFAULT ('') FOR [SessionSuffix]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ECRIComponent ------------------
---------------------------------------------
CREATE TABLE [dbo].[ECRIComponent] (
[ECRIComponentGUID] uniqueidentifier NOT NULL,
[ECRIDealGUID] uniqueidentifier NOT NULL,
[CatalogNumber] varchar(64) NOT NULL,
[Description] varchar(1000) NOT NULL,
[Quantity] int NOT NULL,
[QuotedPrice] float NOT NULL,
PRIMARY KEY ([ECRIComponentGUID])
);
GO
ALTER TABLE [dbo].[ECRIComponent] ADD CONSTRAINT [FK_ECRIComponent_ECRIDeal] FOREIGN KEY ([ECRIDealGUID]) REFERENCES [dbo].[ECRIDeal] ([ECRIDealGUID]); GO
ALTER TABLE [dbo].[ECRIComponent] ADD CONSTRAINT [DF_ECRIComponent_ECRICOMPONENTGUID] DEFAULT (newid()) FOR [ECRIComponentGUID]; GO
ALTER TABLE [dbo].[ECRIComponent] ADD CONSTRAINT [DF_ECRIComponent_ECRIDEALGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ECRIDealGUID]; GO
ALTER TABLE [dbo].[ECRIComponent] ADD CONSTRAINT [DF_ECRIComponent_CatalogNumber] DEFAULT ('') FOR [CatalogNumber]; GO
ALTER TABLE [dbo].[ECRIComponent] ADD CONSTRAINT [DF_ECRIComponent_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ECRIComponent] ADD CONSTRAINT [DF_ECRIComponent_QUANTITY] DEFAULT ((1)) FOR [Quantity]; GO
ALTER TABLE [dbo].[ECRIComponent] ADD CONSTRAINT [DF_ECRIComponent_QUOTEDPRICE] DEFAULT ((0)) FOR [QuotedPrice]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ECRIDeal ------------------
---------------------------------------------
CREATE TABLE [dbo].[ECRIDeal] (
[ECRIDealGUID] uniqueidentifier NOT NULL,
[ECRIModelGUID] uniqueidentifier NOT NULL,
[ReferenceNumber] int NOT NULL,
[QuotedPrice] float NOT NULL,
[ListPrice] float NOT NULL,
[Units] float NOT NULL,
[Comments] varchar(4000) NOT NULL,
[Discount] float NOT NULL,
[DealDate] nvarchar(64) NOT NULL,
PRIMARY KEY ([ECRIDealGUID])
);
GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [FK_ECRIDeal_ECRIModel] FOREIGN KEY ([ECRIModelGUID]) REFERENCES [dbo].[ECRIModel] ([ECRIModelGUID]); GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [DF_ECRIDeal_ECRIDEALGUID] DEFAULT (newid()) FOR [ECRIDealGUID]; GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [DF_ECRIDeal_ECRIMODELGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ECRIModelGUID]; GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [DF_ECRIDeal_ReferenceNumber] DEFAULT ((0)) FOR [ReferenceNumber]; GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [DF_ECRIDeal_QUOTEDPRICE] DEFAULT ((0)) FOR [QuotedPrice]; GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [DF_ECRIDeal_LISTPRICE] DEFAULT ((0)) FOR [ListPrice]; GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [DF_ECRIDeal_UNITS] DEFAULT ((0)) FOR [Units]; GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [DF_ECRIDeal_Comments] DEFAULT ('') FOR [Comments]; GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [DF_ECRIDeal_Discount] DEFAULT ((0)) FOR [Discount]; GO
ALTER TABLE [dbo].[ECRIDeal] ADD CONSTRAINT [DF_ECRIDeal_Date] DEFAULT ('') FOR [DealDate]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ECRIDocument ------------------
---------------------------------------------
CREATE TABLE [dbo].[ECRIDocument] (
[ECRIDocumentGUID] uniqueidentifier NOT NULL,
[ECRIPackageGUID] uniqueidentifier NOT NULL,
[Title] varchar(200) NOT NULL,
[Source] int NOT NULL,
[ResultID] varchar(64) NOT NULL,
[RadarInfo] varchar(10) NOT NULL,
[RadarComment1] varchar(8000) NOT NULL,
[RadarComment2] varchar(8000) NOT NULL,
[RadarComment3] varchar(8000) NOT NULL,
[RadarComment4] varchar(8000) NOT NULL,
[RadarComment5] varchar(8000) NOT NULL,
PRIMARY KEY ([ECRIDocumentGUID])
);
GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [FK_ECRIDocument_ECRIPackage] FOREIGN KEY ([ECRIPackageGUID]) REFERENCES [dbo].[ECRIPackage] ([ECRIPackageGUID]); GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_ECRIDocumentGUID] DEFAULT (newid()) FOR [ECRIDocumentGUID]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_ECRIPackageGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ECRIPackageGUID]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_Title] DEFAULT ('') FOR [Title]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_Source] DEFAULT ((0)) FOR [Source]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_Identifier] DEFAULT ('') FOR [ResultID]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_RadarInfo] DEFAULT ('') FOR [RadarInfo]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_RadarComment1] DEFAULT ('') FOR [RadarComment1]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_RadarComment2] DEFAULT ('') FOR [RadarComment2]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_RadarComment3] DEFAULT ('') FOR [RadarComment3]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_RadarComment4] DEFAULT ('') FOR [RadarComment4]; GO
ALTER TABLE [dbo].[ECRIDocument] ADD CONSTRAINT [DF_ECRIDocument_RadarComment5] DEFAULT ('') FOR [RadarComment5]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ECRIDocumentSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[ECRIDocumentSection] (
[ECRIDocumentSectionGUID] uniqueidentifier NOT NULL,
[ECRIDocumentGUID] uniqueidentifier NOT NULL,
[Header] varchar(200) NOT NULL,
[Text] nvarchar(max) NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([ECRIDocumentSectionGUID])
);
GO
ALTER TABLE [dbo].[ECRIDocumentSection] ADD CONSTRAINT [FK_ECRIDocumentSection_ECRIDocument] FOREIGN KEY ([ECRIDocumentGUID]) REFERENCES [dbo].[ECRIDocument] ([ECRIDocumentGUID]); GO
ALTER TABLE [dbo].[ECRIDocumentSection] ADD CONSTRAINT [DF_ECRIDocumentSection_ECRIDocumentSectionGUID] DEFAULT (newid()) FOR [ECRIDocumentSectionGUID]; GO
ALTER TABLE [dbo].[ECRIDocumentSection] ADD CONSTRAINT [DF_ECRIDocumentSection_ECRIDocumentGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ECRIDocumentGUID]; GO
ALTER TABLE [dbo].[ECRIDocumentSection] ADD CONSTRAINT [DF_ECRIDocumentSection_Text] DEFAULT ('') FOR [Text]; GO
ALTER TABLE [dbo].[ECRIDocumentSection] ADD CONSTRAINT [DF_ECRIDocumentSection_Header] DEFAULT ('') FOR [Header]; GO
ALTER TABLE [dbo].[ECRIDocumentSection] ADD CONSTRAINT [DF_ECRIDocumentSection_DisplayOrder] DEFAULT ((0)) FOR [DisplayOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ECRIEquipment ------------------
---------------------------------------------
CREATE TABLE [dbo].[ECRIEquipment] (
[ECRIEquipmentGUID] uniqueidentifier NOT NULL,
[ECRIPackageGUID] uniqueidentifier NOT NULL,
[Name] varchar(120) NOT NULL,
PRIMARY KEY ([ECRIEquipmentGUID])
);
GO
ALTER TABLE [dbo].[ECRIEquipment] ADD CONSTRAINT [FK_ECRIEquipmentName_ECRIPackage] FOREIGN KEY ([ECRIPackageGUID]) REFERENCES [dbo].[ECRIPackage] ([ECRIPackageGUID]); GO
ALTER TABLE [dbo].[ECRIEquipment] ADD CONSTRAINT [DF_ECRIEquipmentName_DeviceTerm] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[ECRIEquipment] ADD CONSTRAINT [DF_ECRIEquipmentName_ECRIEquipmentNameGUID] DEFAULT (newid()) FOR [ECRIEquipmentGUID]; GO
ALTER TABLE [dbo].[ECRIEquipment] ADD CONSTRAINT [DF_ECRIEquipmentName_ECRIPackageGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ECRIPackageGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ECRIModel ------------------
---------------------------------------------
CREATE TABLE [dbo].[ECRIModel] (
[ECRIModelGUID] uniqueidentifier NOT NULL,
[ECRIPackageGUID] uniqueidentifier NOT NULL,
[ECRIEquipmentGUID] uniqueidentifier NOT NULL,
[ECRIVendorGUID] uniqueidentifier NOT NULL,
[Name] varchar(300) NOT NULL,
[ResultID] varchar(64) NOT NULL,
PRIMARY KEY ([ECRIModelGUID])
);
GO
ALTER TABLE [dbo].[ECRIModel] ADD CONSTRAINT [FK_ECRIModel_ECRIPackage] FOREIGN KEY ([ECRIPackageGUID]) REFERENCES [dbo].[ECRIPackage] ([ECRIPackageGUID]); GO
ALTER TABLE [dbo].[ECRIModel] ADD CONSTRAINT [DF_ECRIModel_ECRIMODELGUID] DEFAULT (newid()) FOR [ECRIModelGUID]; GO
ALTER TABLE [dbo].[ECRIModel] ADD CONSTRAINT [DF_ECRIModel_ECRIPackageGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ECRIPackageGUID]; GO
ALTER TABLE [dbo].[ECRIModel] ADD CONSTRAINT [DF_ECRIModel_ECRIEquipmentGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ECRIEquipmentGUID]; GO
ALTER TABLE [dbo].[ECRIModel] ADD CONSTRAINT [DF_ECRIModel_ECRIVendorGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ECRIVendorGUID]; GO
ALTER TABLE [dbo].[ECRIModel] ADD CONSTRAINT [DF_ECRIModel_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[ECRIModel] ADD CONSTRAINT [DF_ECRIModel_ECRIResultID] DEFAULT ('') FOR [ResultID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ECRIPackage ------------------
---------------------------------------------
CREATE TABLE [dbo].[ECRIPackage] (
[ECRIPackageGUID] uniqueidentifier NOT NULL,
[PlanGUID] uniqueidentifier NOT NULL,
[SearchTerm] nvarchar(4000) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[DateCreated] datetime NOT NULL,
PRIMARY KEY ([ECRIPackageGUID])
);
GO
ALTER TABLE [dbo].[ECRIPackage] ADD CONSTRAINT [DF_ECRIPlanSelection_ECRIPlanSelectionGUID] DEFAULT (newid()) FOR [ECRIPackageGUID]; GO
ALTER TABLE [dbo].[ECRIPackage] ADD CONSTRAINT [DF_ECRIPlanSelection_PlanGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanGUID]; GO
ALTER TABLE [dbo].[ECRIPackage] ADD CONSTRAINT [DF_ECRIPackage_Search] DEFAULT ('') FOR [SearchTerm]; GO
ALTER TABLE [dbo].[ECRIPackage] ADD CONSTRAINT [DF_ECRIPlanSelection_ECRIEquipmentNames] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ECRIPackage] ADD CONSTRAINT [DF_ECRIPlanSelection_ECRIVendors] DEFAULT (getdate()) FOR [DateCreated]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ECRIVendor ------------------
---------------------------------------------
CREATE TABLE [dbo].[ECRIVendor] (
[ECRIVendorGUID] uniqueidentifier NOT NULL,
[ECRIPackageGUID] uniqueidentifier NOT NULL,
[Name] varchar(121) NOT NULL,
PRIMARY KEY ([ECRIVendorGUID])
);
GO
ALTER TABLE [dbo].[ECRIVendor] ADD CONSTRAINT [FK_ECRIVendor_ECRIPackage] FOREIGN KEY ([ECRIPackageGUID]) REFERENCES [dbo].[ECRIPackage] ([ECRIPackageGUID]); GO
ALTER TABLE [dbo].[ECRIVendor] ADD CONSTRAINT [DF_ECRIVendor_ECRIVendorGUID] DEFAULT (newid()) FOR [ECRIVendorGUID]; GO
ALTER TABLE [dbo].[ECRIVendor] ADD CONSTRAINT [DF_ECRIVendor_ECRIPackageGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ECRIPackageGUID]; GO
ALTER TABLE [dbo].[ECRIVendor] ADD CONSTRAINT [DF_ECRIVendor_Name] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFCalculatedMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFCalculatedMeasure] (
[CalculatedMeasureGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[IsVisible] bit NOT NULL,
[MDXName] nvarchar(450) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[DisplayFormat] nvarchar(450) NOT NULL,
[DisplayFolder] nvarchar(450) NOT NULL,
[NonEmptyBehavior] nvarchar(max) NOT NULL,
[CubeStubGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([CalculatedMeasureGUID])
);
CREATE NONCLUSTERED INDEX [IX_EMFCalculatedMeasure_DisplayFormat] ON [dbo].[EMFCalculatedMeasure] ([DisplayFormat]);
GO
ALTER TABLE [dbo].[EMFCalculatedMeasure] ADD CONSTRAINT [DF_EMFCalculatedMeasure_CALCULATEDMEASUREGUID] DEFAULT (newid()) FOR [CalculatedMeasureGUID]; GO
ALTER TABLE [dbo].[EMFCalculatedMeasure] ADD CONSTRAINT [DF_EMFCalculatedMeasure_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[EMFCalculatedMeasure] ADD CONSTRAINT [DF_EMFCalculatedMeasure_ISVISIBLE] DEFAULT ((1)) FOR [IsVisible]; GO
ALTER TABLE [dbo].[EMFCalculatedMeasure] ADD CONSTRAINT [DF_EMFCalculatedMeasure_MDXNAME] DEFAULT ('') FOR [MDXName]; GO
ALTER TABLE [dbo].[EMFCalculatedMeasure] ADD CONSTRAINT [DF_EMFCalculatedMeasure_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[EMFCalculatedMeasure] ADD CONSTRAINT [DF_EMFCalculatedMeasure_FORMATSTRING] DEFAULT ('') FOR [DisplayFormat]; GO
ALTER TABLE [dbo].[EMFCalculatedMeasure] ADD CONSTRAINT [DF_EMFCalculatedMeasure_DISPLAYFOLDER] DEFAULT ('') FOR [DisplayFolder]; GO
ALTER TABLE [dbo].[EMFCalculatedMeasure] ADD CONSTRAINT [DF_EMFCalculatedMeasure_NONEMPTYBEHAVIOR] DEFAULT ('') FOR [NonEmptyBehavior]; GO
ALTER TABLE [dbo].[EMFCalculatedMeasure] ADD CONSTRAINT [DF_EMFCalculatedMeasure_CUBESTUBGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeStubGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFCubeStub ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFCubeStub] (
[CubeGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[DateCreated] datetime NOT NULL,
[DateProcessed] datetime NOT NULL,
[ServerName] nvarchar(64) NOT NULL,
[DatabaseFriendlyName] nvarchar(32) NOT NULL,
[DatabasePrefixName] nvarchar(64) NOT NULL,
[Status] int NOT NULL,
[Type] int NOT NULL,
[IsReportable] bit NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[KeyDimension] nvarchar(450) NOT NULL,
[IsEditable] bit NOT NULL,
[CubeType] int NOT NULL,
[IsAutoProcessEnabled] bit NOT NULL,
[IsAutoUpdateEnabled] bit NOT NULL,
[MaxParallel] int NOT NULL,
[IsUsingBatchProcessing] bit NOT NULL,
[DateModified] datetime NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[IsUsingDSCubeReportIntelliCross] bit NOT NULL,
PRIMARY KEY ([CubeGUID])
);
GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF__EMFCubeSt__IsUsi__0A45C229] DEFAULT ((0)) FOR [IsUsingDSCubeReportIntelliCross]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF__EMFCubeSt__DateM__0B2E640C] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_CUBEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeGUID]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_DATABASEPREFIXNAME] DEFAULT ('') FOR [DatabasePrefixName]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCube_STATUS] DEFAULT ((0)) FOR [Status]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCube_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_ISREPORTABLE] DEFAULT ((0)) FOR [IsReportable]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_KEYDIMENSION] DEFAULT ('') FOR [KeyDimension]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_ISEDITABLE] DEFAULT ((1)) FOR [IsEditable]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_CUBETYPE] DEFAULT ((0)) FOR [CubeType]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_IsAutoProcessEnabled] DEFAULT ((1)) FOR [IsAutoProcessEnabled]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_IsAutoUpdateEnabled] DEFAULT ((0)) FOR [IsAutoUpdateEnabled]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_MaxParallel] DEFAULT ((0)) FOR [MaxParallel]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_IsUsingBatchProcessing] DEFAULT ((0)) FOR [IsUsingBatchProcessing]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF__EMFCubeSt__Globa__5A2C0555] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_ServerName] DEFAULT ('') FOR [ServerName]; GO
ALTER TABLE [dbo].[EMFCubeStub] ADD CONSTRAINT [DF_EMFCubeStub_DatabaseFriendlyName] DEFAULT ('') FOR [DatabaseFriendlyName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFCubeStubCrosswalk ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFCubeStubCrosswalk] (
[CUBESTUBCROSSWALKGUID] uniqueidentifier NOT NULL,
[CubeStubGUID] uniqueidentifier NOT NULL,
[StructureGUID] uniqueidentifier NOT NULL,
[LinkedStructureGUID] uniqueidentifier NOT NULL,
[LinkedDimensionGUID] uniqueidentifier NOT NULL,
[LinkedMeasureGUID] uniqueidentifier NOT NULL,
[JoinType] int NOT NULL,
PRIMARY KEY ([CUBESTUBCROSSWALKGUID])
);
GO
ALTER TABLE [dbo].[EMFCubeStubCrosswalk] ADD CONSTRAINT [FK_EMFCubeStubCrosswalkLink_EMFCubeStub] FOREIGN KEY ([CubeStubGUID]) REFERENCES [dbo].[EMFCubeStub] ([CubeGUID]); GO
ALTER TABLE [dbo].[EMFCubeStubCrosswalk] ADD CONSTRAINT [DF_EMFCubeStubCrosswalkLink_CUBESTUBCROSSWALKLINKGUID] DEFAULT (newid()) FOR [CUBESTUBCROSSWALKGUID]; GO
ALTER TABLE [dbo].[EMFCubeStubCrosswalk] ADD CONSTRAINT [DF_EMFCubeStubCrosswalk_JOINTYPE] DEFAULT ((0)) FOR [JoinType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFCubeStubCustomDimension ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFCubeStubCustomDimension] (
[StructureGUID] uniqueidentifier NOT NULL,
[CubeStubGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[NewDimensionGUID] uniqueidentifier NOT NULL,
[NewName] varchar(450) NOT NULL,
[NewSQL] varchar(max) NOT NULL,
[NewSQLType] int NOT NULL,
[NewSQLTableIDColName] varchar(64) NOT NULL,
[NewSQLTableParentColName] varchar(64) NOT NULL,
[NewSQLTableOrderColName] nvarchar(64) NOT NULL,
[NewSQLTableValueColName] varchar(64) NOT NULL,
[NewSQLTableOperatorColName] varchar(64) NOT NULL,
[NewFactTableColName] nvarchar(64) NOT NULL,
[NewSQLTableName] nvarchar(64) NOT NULL,
[NewLevelNamingTemplate] nvarchar(50) NOT NULL,
[NewDefaultMemberMDXName] varchar(450) NOT NULL,
[NewAggregationType] int NOT NULL,
[NewIsVisible] bit NOT NULL,
[NewIsMultiLevel] bit NOT NULL,
[NewIsQuery] bit NOT NULL,
[IsOverridingSQLTableName] bit NOT NULL,
[IsOverridingLevelNamingTemplate] bit NOT NULL,
[IsOverridingDefaultMemberMDXName] bit NOT NULL,
[IsOverridingAggregationType] bit NOT NULL,
[IsOverridingIsVisible] bit NOT NULL,
[IsOverridingIsMultiLevel] bit NOT NULL,
[IsOverridingIsQuery] bit NOT NULL,
PRIMARY KEY ([StructureGUID], [CubeStubGUID], [DimensionGUID])
);
GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [FK_EMFCubeStubCustomDimension_EMFCubeStub] FOREIGN KEY ([CubeStubGUID]) REFERENCES [dbo].[EMFCubeStub] ([CubeGUID]); GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_STRUCTUREGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [StructureGUID]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_CUBESTUBGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeStubGUID]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_DIMENSIONGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWDIMENSIONGUID] DEFAULT (newid()) FOR [NewDimensionGUID]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWNAME] DEFAULT ('') FOR [NewName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_FILTERSQL] DEFAULT ('') FOR [NewSQL]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_FULLSQL] DEFAULT ((0)) FOR [NewSQLType]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWSQLTABLEIDCOLNAME] DEFAULT ('') FOR [NewSQLTableIDColName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWSQLTABLEPARENTCOLNAME] DEFAULT ('') FOR [NewSQLTableParentColName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWSQLTABLEORDERCOLNAME] DEFAULT ('') FOR [NewSQLTableOrderColName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWSQLTABLEVALUECOLNAME] DEFAULT ('') FOR [NewSQLTableValueColName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWSQLTABLEOPERATORCOLNAME] DEFAULT ('') FOR [NewSQLTableOperatorColName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWFACTTABLECOLNAME] DEFAULT ('') FOR [NewFactTableColName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWSQLTABLENAME] DEFAULT ('') FOR [NewSQLTableName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWLEVELNAMINGTEMPLATE] DEFAULT ('') FOR [NewLevelNamingTemplate]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWDEFAULTMEMBERMDXNAME] DEFAULT ('') FOR [NewDefaultMemberMDXName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWAGGREGATIONTYPE] DEFAULT ((0)) FOR [NewAggregationType]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWISVISIBLE] DEFAULT ((0)) FOR [NewIsVisible]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWISMULTILEVEL] DEFAULT ((0)) FOR [NewIsMultiLevel]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_NEWISQUERY] DEFAULT ((0)) FOR [NewIsQuery]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_ISOVERRIDINGSQLTABLENAME] DEFAULT ((0)) FOR [IsOverridingSQLTableName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_ISOVERRIDINGLEVELNAMINGTEMPLATE] DEFAULT ((0)) FOR [IsOverridingLevelNamingTemplate]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_ISOVERRIDINGDEFAULTMEMBERMDXNAME] DEFAULT ((0)) FOR [IsOverridingDefaultMemberMDXName]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_ISOVERRIDINGAGGREGATIONTYPE] DEFAULT ((0)) FOR [IsOverridingAggregationType]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_ISOVERRIDINGISVISIBLE] DEFAULT ((0)) FOR [IsOverridingIsVisible]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_ISOVERRIDINGISMULTILEVEL] DEFAULT ((0)) FOR [IsOverridingIsMultiLevel]; GO
ALTER TABLE [dbo].[EMFCubeStubCustomDimension] ADD CONSTRAINT [DF_EMFCubeStubCustomDimension_ISOVERRIDINGISQUERY] DEFAULT ((0)) FOR [IsOverridingIsQuery]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFCubeStubFormFieldLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFCubeStubFormFieldLink] (
[CubeStubGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([CubeStubGUID], [FormFieldGUID])
);
GO
ALTER TABLE [dbo].[EMFCubeStubFormFieldLink] ADD CONSTRAINT [FK_EMFCubeStubFormFieldLink_EMFCubeStub] FOREIGN KEY ([CubeStubGUID]) REFERENCES [dbo].[EMFCubeStub] ([CubeGUID]); GO
ALTER TABLE [dbo].[EMFCubeStubFormFieldLink] ADD CONSTRAINT [FK_EMFCubeStubFormFieldLink_FEFormField] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FEFormField] ([FORMFIELDGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFCubeStubModelDataConfigLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFCubeStubModelDataConfigLink] (
[ModelDataConfigGUID] uniqueidentifier NOT NULL,
[CubeGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ModelDataConfigGUID], [CubeGUID])
);
GO
ALTER TABLE [dbo].[EMFCubeStubModelDataConfigLink] ADD CONSTRAINT [FK_EMFCubeStubModelDataConfigLink_EMFCubeStub] FOREIGN KEY ([CubeGUID]) REFERENCES [dbo].[EMFCubeStub] ([CubeGUID]); GO
ALTER TABLE [dbo].[EMFCubeStubModelDataConfigLink] ADD CONSTRAINT [FK_EMFCubeStubModelDataConfigLink_EMFModelDataConfig] FOREIGN KEY ([ModelDataConfigGUID]) REFERENCES [dbo].[EMFModelDataConfig] ([ModelDataConfigGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFCubeStubModelKeyValue ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFCubeStubModelKeyValue] (
[CubeStubModelKeyValueGUID] uniqueidentifier NOT NULL,
[CubeStubGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[MemberID] nvarchar(450) NOT NULL,
PRIMARY KEY ([CubeStubModelKeyValueGUID])
);
CREATE CLUSTERED INDEX [IX_EMFCubeStubModelKeyValue] ON [dbo].[EMFCubeStubModelKeyValue] ([CubeStubGUID], [ModelGUID]);
GO
ALTER TABLE [dbo].[EMFCubeStubModelKeyValue] ADD CONSTRAINT [DF_EMFCubeStubModelKeyValue_CUBESTUBMODELKEYVALUEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeStubModelKeyValueGUID]; GO
ALTER TABLE [dbo].[EMFCubeStubModelKeyValue] ADD CONSTRAINT [DF_EMFCubeStubModelKeyValue_CUBESTUBGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeStubGUID]; GO
ALTER TABLE [dbo].[EMFCubeStubModelKeyValue] ADD CONSTRAINT [DF_EMFCubeStubModelKeyValue_MODELGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
ALTER TABLE [dbo].[EMFCubeStubModelKeyValue] ADD CONSTRAINT [DF_Table_1_MEMBERGUID] DEFAULT ('') FOR [MemberID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFCubeStubSubtableLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFCubeStubSubtableLink] (
[CubeStubGUID] uniqueidentifier NOT NULL,
[SubtableGUID] uniqueidentifier NOT NULL,
[UpdateBoolean] bit NOT NULL,
PRIMARY KEY ([CubeStubGUID], [SubtableGUID])
);
GO
ALTER TABLE [dbo].[EMFCubeStubSubtableLink] ADD CONSTRAINT [FK_EMFCubeStubSubtableLink_EMFCubeStub] FOREIGN KEY ([CubeStubGUID]) REFERENCES [dbo].[EMFCubeStub] ([CubeGUID]); GO
ALTER TABLE [dbo].[EMFCubeStubSubtableLink] ADD CONSTRAINT [FK_EMFCubeStubSubtableLink_EMFSubtable] FOREIGN KEY ([SubtableGUID]) REFERENCES [dbo].[EMFSubtable] ([SUBTABLEGUID]); GO
ALTER TABLE [dbo].[EMFCubeStubSubtableLink] ADD CONSTRAINT [DF_EMFCubeStubSubtableLink_UPDATEBOOLEAN] DEFAULT ((0)) FOR [UpdateBoolean]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFFillIn ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFFillIn] (
[FillInGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[PlaceholderMemberGUID] uniqueidentifier NOT NULL,
[FilledInMemberGUID] uniqueidentifier NOT NULL,
[IsSetByUser] bit NOT NULL,
[Version] timestamp NOT NULL,
PRIMARY KEY ([FillInGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_EMFFillIn] ON [dbo].[EMFFillIn] ([ModelGUID], [PlaceholderMemberGUID]);
GO
ALTER TABLE [dbo].[EMFFillIn] ADD CONSTRAINT [FK_EMFFillIn_XPlan] FOREIGN KEY ([ModelGUID]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[EMFFillIn] ADD CONSTRAINT [DF_EMFFillIn_FillInGUID] DEFAULT (newsequentialid()) FOR [FillInGUID]; GO
ALTER TABLE [dbo].[EMFFillIn] ADD CONSTRAINT [DF_EMFFillIn_ModelGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
ALTER TABLE [dbo].[EMFFillIn] ADD CONSTRAINT [DF_EMFFillIn_IsSetByUser] DEFAULT ((0)) FOR [IsSetByUser]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFFillInSetManyStaging ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFFillInSetManyStaging] (
[InstanceGUID] uniqueidentifier NULL,
[PHDimensionGUID] uniqueidentifier NULL,
[ModelGUID] uniqueidentifier NULL,
[ParentPHMemberGUID] uniqueidentifier NULL,
[FillInGUID] uniqueidentifier NULL,
[SortOrder] nvarchar(4000) NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFJoinedStructureCalculatedMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFJoinedStructureCalculatedMeasure] (
[CALCULATEDMEASUREGUID] uniqueidentifier NOT NULL,
[StructureGUID] uniqueidentifier NOT NULL,
[NAME] nvarchar(64) NOT NULL,
[FORMATSTRING] nvarchar(64) NOT NULL,
[ColumnWidth] int NOT NULL,
PRIMARY KEY ([CALCULATEDMEASUREGUID])
);
GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasure] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasure_CALCULATEDMEASUREGUID] DEFAULT (newid()) FOR [CALCULATEDMEASUREGUID]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasure] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasure_JOINEDSTRUCTUREGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [StructureGUID]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasure] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasure_NAME] DEFAULT ('') FOR [NAME]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasure] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasure_FORMATSTRING] DEFAULT ('#,#0;(#,#0)') FOR [FORMATSTRING]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasure] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasure_ColumnWidth] DEFAULT ((125)) FOR [ColumnWidth]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFJoinedStructureCalculatedMeasureVariable ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFJoinedStructureCalculatedMeasureVariable] (
[CalculatedMeasureVariableGUID] uniqueidentifier NOT NULL,
[CalculatedMeasureGUID] uniqueidentifier NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[StructureGUID] uniqueidentifier NOT NULL,
[ConstantValue] float NOT NULL,
[Operation] int NOT NULL,
[ExecutionOrder] int NOT NULL,
PRIMARY KEY ([CalculatedMeasureVariableGUID])
);
GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasureVariable] ADD CONSTRAINT [FK_EMFJoinedStructureCalculatedMeasureVariable_EMFJoinedStructureCalculatedMeasure] FOREIGN KEY ([CalculatedMeasureGUID]) REFERENCES [dbo].[EMFJoinedStructureCalculatedMeasure] ([CALCULATEDMEASUREGUID]); GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasureVariable] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasureVariable_CALCULATEDMEASUREVARIABLEGUID] DEFAULT (newid()) FOR [CalculatedMeasureVariableGUID]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasureVariable] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasureVariable_CALCULATEDMEASUREGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CalculatedMeasureGUID]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasureVariable] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasureVariable_MEASUREGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasureVariable] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasureVariable_STRUCTUREGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [StructureGUID]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasureVariable] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasureVariable_CONSTANTVALUE] DEFAULT ((0)) FOR [ConstantValue]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasureVariable] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasureVariable_OPERATION] DEFAULT ((2)) FOR [Operation]; GO
ALTER TABLE [dbo].[EMFJoinedStructureCalculatedMeasureVariable] ADD CONSTRAINT [DF_EMFJoinedStructureCalculatedMeasureVariable_ExecutionOrder] DEFAULT ((0)) FOR [ExecutionOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFMeasure] (
[MEASUREGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(max) NOT NULL,
[DataType] int NOT NULL,
[DisplayFormat] nvarchar(255) NOT NULL,
[IsVisible] bit NOT NULL,
[IsModelMeasure] bit NOT NULL,
[AggregateFunctionType] int NOT NULL,
[IsTextOnly] bit NOT NULL,
[MinimumValue] float NOT NULL,
[MaximumValue] float NOT NULL,
[BoundsType] int NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[IsPlaceholderLabel] bit NOT NULL,
[PlaceholderDimensionGUID] uniqueidentifier NOT NULL,
[FillInPropertyIndex] int NOT NULL,
[IsHideRowIfUnfilled] bit NOT NULL,
[IsHideColumnIfUnfilled] bit NOT NULL,
PRIMARY KEY ([MEASUREGUID])
);
GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_MEASUREGUID] DEFAULT (newid()) FOR [MEASUREGUID]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_DATATYPE] DEFAULT ((0)) FOR [DataType]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_DISPLAYFORMAT] DEFAULT ('') FOR [DisplayFormat]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_VISIBLE] DEFAULT ((1)) FOR [IsVisible]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_ISMODELMEASURE] DEFAULT ((1)) FOR [IsModelMeasure]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_AGGREGATEFUNCTIONTYPE] DEFAULT ((0)) FOR [AggregateFunctionType]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_ISTEXTONLY] DEFAULT ('False') FOR [IsTextOnly]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_MINIMUMVALUE] DEFAULT ((0)) FOR [MinimumValue]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_MAXIMUMVALUE] DEFAULT ((0)) FOR [MaximumValue]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_BOUNDSTYPE] DEFAULT ((0)) FOR [BoundsType]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_FolderGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_IsFillInLabel] DEFAULT ((0)) FOR [IsPlaceholderLabel]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_PlaceholderDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlaceholderDimensionGUID]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_FillInLabelPropertyIndex] DEFAULT ((-1)) FOR [FillInPropertyIndex]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_IsHideRowsIfUnfilled] DEFAULT ((0)) FOR [IsHideRowIfUnfilled]; GO
ALTER TABLE [dbo].[EMFMeasure] ADD CONSTRAINT [DF_EMFMeasure_IsHideColumnsIfUnfilled] DEFAULT ((0)) FOR [IsHideColumnIfUnfilled]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelDataConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelDataConfig] (
[ModelDataConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(max) NOT NULL,
[Version] timestamp NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[IsExpandable] bit NOT NULL,
[LastProcessed] datetime NOT NULL,
[LastProcessRequest] datetime NOT NULL,
[ProcessInterval] int NOT NULL,
[ShortcutName] nvarchar(16) NOT NULL,
[FormatOverrideDimensionGUID] uniqueidentifier NOT NULL,
[IsSetupLocked] bit NOT NULL,
PRIMARY KEY ([ModelDataConfigGUID])
);
GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelDataConfig_FormatOverrideDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormatOverrideDimensionGUID]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelSetup_MODELSETUPGUID] DEFAULT (newid()) FOR [ModelDataConfigGUID]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelSetup_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelDataConfig_IsSetupLocked] DEFAULT ((0)) FOR [IsSetupLocked]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelStructure_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelDataConfig_FOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelDataConfig_LastProcessed] DEFAULT (getdate()) FOR [LastProcessed]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelDataConfig_LastProcessRequest] DEFAULT (getdate()) FOR [LastProcessRequest]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelDataConfig_ProcessInterval] DEFAULT ((900)) FOR [ProcessInterval]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelDataConfig_ShortcutName] DEFAULT ('') FOR [ShortcutName]; GO
ALTER TABLE [dbo].[EMFModelDataConfig] ADD CONSTRAINT [DF_EMFModelDataConfig_IsExpandable] DEFAULT ((0)) FOR [IsExpandable]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelDataConfigDimensionLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelDataConfigDimensionLink] (
[ModelDataConfigGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[IsModelKey] bit NOT NULL,
[IsFilterMember] bit NOT NULL,
[IsUniqueIndexMember] bit NOT NULL,
[Version] timestamp NOT NULL,
PRIMARY KEY ([ModelDataConfigGUID], [DimensionGUID])
);
GO
ALTER TABLE [dbo].[EMFModelDataConfigDimensionLink] ADD CONSTRAINT [FK_MDC_MDC_Dim_Link] FOREIGN KEY ([ModelDataConfigGUID]) REFERENCES [dbo].[EMFModelDataConfig] ([ModelDataConfigGUID]); GO
ALTER TABLE [dbo].[EMFModelDataConfigDimensionLink] ADD CONSTRAINT [DF_DimensionSet_DIMENSIONSETGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelDataConfigGUID]; GO
ALTER TABLE [dbo].[EMFModelDataConfigDimensionLink] ADD CONSTRAINT [DF_DimensionSet_NAME] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[EMFModelDataConfigDimensionLink] ADD CONSTRAINT [DF_EMFModelDataConfigDimensionLink_ISMODELKEY] DEFAULT ((0)) FOR [IsModelKey]; GO
ALTER TABLE [dbo].[EMFModelDataConfigDimensionLink] ADD CONSTRAINT [DF_EMFModelDataConfigDimensionLink_ISFILTERMEMBER] DEFAULT ((0)) FOR [IsFilterMember]; GO
ALTER TABLE [dbo].[EMFModelDataConfigDimensionLink] ADD CONSTRAINT [DF_EMFModelDataConfigDimensionLink_ISUNIQUEINDEXMEMBER] DEFAULT ((0)) FOR [IsUniqueIndexMember]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelDataConfigMeasureLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelDataConfigMeasureLink] (
[ModelDataConfigGUID] uniqueidentifier NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[Version] timestamp NOT NULL,
PRIMARY KEY ([ModelDataConfigGUID], [MeasureGUID])
);
GO
ALTER TABLE [dbo].[EMFModelDataConfigMeasureLink] ADD CONSTRAINT [FK_MDC_MDC_Meas_Link] FOREIGN KEY ([ModelDataConfigGUID]) REFERENCES [dbo].[EMFModelDataConfig] ([ModelDataConfigGUID]); GO
ALTER TABLE [dbo].[EMFModelDataConfigMeasureLink] ADD CONSTRAINT [FK_Meas_MDC_Meas_Link] FOREIGN KEY ([MeasureGUID]) REFERENCES [dbo].[EMFMeasure] ([MEASUREGUID]); GO
ALTER TABLE [dbo].[EMFModelDataConfigMeasureLink] ADD CONSTRAINT [DF_EMFModelSetupMeasureLink_MODELSETUPGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelDataConfigGUID]; GO
ALTER TABLE [dbo].[EMFModelDataConfigMeasureLink] ADD CONSTRAINT [DF_EMFModelSetupMeasureLink_MEASUREGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelDataLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelDataLink] (
[ModelDataLinkGUID] uniqueidentifier NOT NULL,
[LinkSourceGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[ParentModelGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ModelDataLinkGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_EMFMODELDATALINK] ON [dbo].[EMFModelDataLink] ([ModelGUID], [LinkSourceGUID], [ParentModelGUID]);
GO
ALTER TABLE [dbo].[EMFModelDataLink] ADD CONSTRAINT [FK_EMFModelLink_EMFModelTemplateLinkSource] FOREIGN KEY ([LinkSourceGUID]) REFERENCES [dbo].[EMFModelTemplateLinkSource] ([LinkSourceGUID]); GO
ALTER TABLE [dbo].[EMFModelDataLink] ADD CONSTRAINT [DF_EMFModelDataLink_MODELDATALINKGUID] DEFAULT (newid()) FOR [ModelDataLinkGUID]; GO
ALTER TABLE [dbo].[EMFModelDataLink] ADD CONSTRAINT [DF_EMFModelDependency_MODELGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
ALTER TABLE [dbo].[EMFModelDataLink] ADD CONSTRAINT [DF_EMFModelDependency_PARENTMODELGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentModelGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelTemplate ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelTemplate] (
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[Version] timestamp NOT NULL,
[Type] int NOT NULL,
[IsPublished] bit NOT NULL,
[IsExpanded] bit NOT NULL,
[IsSafeModeOn] bit NOT NULL,
[DefaultFormGUID] uniqueidentifier NOT NULL,
[IsNewLabelsOnly] bit NOT NULL,
[IsUsingHashJoin] bit NOT NULL,
[IsScoreFillinAdvancedMode] bit NOT NULL,
[IsModelWorkbookCachable] bit NOT NULL,
[HasModelDependents] bit NOT NULL,
[IsModelRefreshOnFillinChange] bit NOT NULL,
[IsReadUncommittedLoad] bit NOT NULL,
[IsReadUncommittedSave] bit NOT NULL,
[IsMemoryCachable] bit NOT NULL,
[PublishOrder] int NOT NULL,
[EditExpansionsMode] tinyint NOT NULL,
[TemplateVersion] varchar(20) NOT NULL,
[IsUsingOpenWorkbookFormat] bit NOT NULL,
[IsHidden] bit NOT NULL,
PRIMARY KEY ([ModelTemplateGUID])
);
GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF__EMFModelT__Templ__044BF490] DEFAULT ('') FOR [TemplateVersion]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_IsHidden] DEFAULT ((0)) FOR [IsHidden]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF__EMFModelT__Publi__23B81C43] DEFAULT ((0)) FOR [PublishOrder]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF__EMFModelT__IsMem__29502EB1] DEFAULT ((0)) FOR [IsMemoryCachable]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF__EMFModelT__IsMod__3B6DE1CB] DEFAULT ((0)) FOR [IsModelWorkbookCachable]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_HasModelDependents] DEFAULT ((1)) FOR [HasModelDependents]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF__EMFModelT__IsMod__3E4A4E76] DEFAULT ((1)) FOR [IsModelRefreshOnFillinChange]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF__EMFModelT__IsRea__3F3E72AF] DEFAULT ((0)) FOR [IsReadUncommittedLoad]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF__EMFModelT__IsRea__403296E8] DEFAULT ((0)) FOR [IsReadUncommittedSave]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_IsUsingHashJoin] DEFAULT ((0)) FOR [IsUsingHashJoin]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_IsUsingOpenWorkbookFormat] DEFAULT ((0)) FOR [IsUsingOpenWorkbookFormat]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_MODELTEMPLATEGUID] DEFAULT (newid()) FOR [ModelTemplateGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_EditExpansionsMode] DEFAULT ((0)) FOR [EditExpansionsMode]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_DefaultFormGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultFormGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_IsNewLabelsOnly] DEFAULT ((0)) FOR [IsNewLabelsOnly]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_ISPUBLISHED] DEFAULT ((0)) FOR [IsPublished]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_IsSafeModeOn] DEFAULT ((0)) FOR [IsSafeModeOn]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_IsExpanded] DEFAULT ((1)) FOR [IsExpanded]; GO
ALTER TABLE [dbo].[EMFModelTemplate] ADD CONSTRAINT [DF_EMFModelTemplate_IsScoreFillinAdvancedMode] DEFAULT ((0)) FOR [IsScoreFillinAdvancedMode]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelTemplateExpansion ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelTemplateExpansion] (
[ExpansionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[CellGUID] uniqueidentifier NOT NULL,
[DimensionMemberGUID] uniqueidentifier NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([ExpansionGUID])
);
GO
ALTER TABLE [dbo].[EMFModelTemplateExpansion] ADD CONSTRAINT [DF_EMFExpansionInfo_EXPANSIONGUID] DEFAULT (newid()) FOR [ExpansionGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateExpansion] ADD CONSTRAINT [DF_EMFModelTemplateExpansion_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[EMFModelTemplateExpansion] ADD CONSTRAINT [DF_EMFModelTemplateExpansion_CellGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CellGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateExpansion] ADD CONSTRAINT [DF_EMFExpansionInfo_DIMENSIONMEMBERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionMemberGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateExpansion] ADD CONSTRAINT [DF_EMFModelTemplateExpansion_DISPLAYORDER] DEFAULT ((0)) FOR [DisplayOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelTemplateFormFieldMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelTemplateFormFieldMapping] (
[FormFieldGUID] uniqueidentifier NOT NULL,
[CellGUID] uniqueidentifier NOT NULL
);
GO
ALTER TABLE [dbo].[EMFModelTemplateFormFieldMapping] ADD CONSTRAINT [DF_EMFModelTemplateFormFieldMapping_FORMFIELDGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormFieldGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateFormFieldMapping] ADD CONSTRAINT [DF_EMFModelTemplateFormFieldMapping_CellGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CellGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelTemplateFramework ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelTemplateFramework] (
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[FrameworkID] tinyint NOT NULL,
PRIMARY KEY ([ModelTemplateGUID], [FrameworkID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelTemplateLinkSource ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelTemplateLinkSource] (
[LinkSourceGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[ParentSubtableGUID] uniqueidentifier NOT NULL,
[ParentModelDataConfigGUID] uniqueidentifier NOT NULL,
[ParentScoreCompositeTableGUID] uniqueidentifier NOT NULL,
[IsSelf] bit NOT NULL,
[Version] timestamp NOT NULL,
PRIMARY KEY ([LinkSourceGUID])
);
GO
ALTER TABLE [dbo].[EMFModelTemplateLinkSource] ADD CONSTRAINT [FK_EMFModelTemplateLinkSource_EMFModelTemplate] FOREIGN KEY ([ModelTemplateGUID]) REFERENCES [dbo].[EMFModelTemplate] ([ModelTemplateGUID]); GO
ALTER TABLE [dbo].[EMFModelTemplateLinkSource] ADD CONSTRAINT [DF_EMFModelTemplateLinkSource_ParentScoreCompositeTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentScoreCompositeTableGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateLinkSource] ADD CONSTRAINT [DF_EMFModelTemplateLinkSource_ISSELF] DEFAULT ((0)) FOR [IsSelf]; GO
ALTER TABLE [dbo].[EMFModelTemplateLinkSource] ADD CONSTRAINT [DF_EMFLinkSource_LINKSOURCEGUID] DEFAULT (newid()) FOR [LinkSourceGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateLinkSource] ADD CONSTRAINT [DF_EMFLinkSource_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[EMFModelTemplateLinkSource] ADD CONSTRAINT [DF_EMFLinkSource_MODELTEMPLATEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelTemplateGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateLinkSource] ADD CONSTRAINT [DF_EMFModelTemplateLinkSource_PARENTSUBTABLEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentSubtableGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateLinkSource] ADD CONSTRAINT [DF_EMFModelTemplateLinkSource_PARENTSTRUCTUREGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentModelDataConfigGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelTemplatePlaceholderLabelMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] (
[MappingGUID] uniqueidentifier NOT NULL,
[PlaceholderDimensionGUID] uniqueidentifier NOT NULL,
[PlaceholderMemberGUID] uniqueidentifier NOT NULL,
[LabelPropertyGUID] uniqueidentifier NOT NULL,
[IsHidingRow] bit NOT NULL,
[IsHidingCol] bit NOT NULL,
[CellGUID] uniqueidentifier NOT NULL,
[RowExpanded] int NOT NULL,
[IsUserMapped] bit NOT NULL,
[IsClearingRow] bit NOT NULL,
[IsClearingCol] bit NOT NULL,
PRIMARY KEY ([MappingGUID])
);
GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_EMFModelTemplatePlaceholderLabelMapping_MappingGUID] DEFAULT (newid()) FOR [MappingGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_EMFModelTemplatePlaceholderLabelMapping_PlaceholderDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlaceholderDimensionGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_EMFModelTemplatePlaceholderLabelMapping_PlaceholderMemberGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlaceholderMemberGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_Table_1_PropertyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LabelPropertyGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_Table_1_IsHidingRow] DEFAULT ((1)) FOR [IsHidingRow]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_Table_1_IsHidingCol] DEFAULT ((0)) FOR [IsHidingCol]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_EMFModelTemplatePlaceholderLabelMapping_CellGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CellGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_EMFModelTemplatePlaceholderLabelMapping_Row] DEFAULT ((0)) FOR [RowExpanded]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_EMFModelTemplatePlaceholderLabelMapping_IsUserMapped] DEFAULT ((1)) FOR [IsUserMapped]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_EMFModelTemplatePlaceholderLabelMapping_IsClearingRow] DEFAULT ((0)) FOR [IsClearingRow]; GO
ALTER TABLE [dbo].[EMFModelTemplatePlaceholderLabelMapping] ADD CONSTRAINT [DF_EMFModelTemplatePlaceholderLabelMapping_IsClearingCol] DEFAULT ((0)) FOR [IsClearingCol]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelTemplateWorksheet ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelTemplateWorksheet] (
[WorksheetGUID] uniqueidentifier NOT NULL,
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(max) NOT NULL,
[DesignerMetaData] nvarchar(max) NOT NULL,
[TransformStateGUID] uniqueidentifier NOT NULL,
[IsImprov] bit NOT NULL,
[IsHiddenOnExpand] bit NOT NULL,
[HiddenRows] int NOT NULL,
[HiddenColumns] int NOT NULL,
[IsHeadingsHiddenOnExpand] bit NOT NULL,
[ZoomLevel] int NOT NULL,
[IsChartsEnabled] bit NOT NULL,
[NameSourceAddress] nvarchar(50) NOT NULL,
[DefaultCellAddress] nvarchar(50) NOT NULL,
[FreezePanesCellAddress] nvarchar(50) NOT NULL,
[IsDefaultSheet] bit NOT NULL,
[CounterCellAddress] nvarchar(50) NOT NULL,
[CloneCount] tinyint NOT NULL,
[IsClearingByNameCell] bit NOT NULL,
PRIMARY KEY ([WorksheetGUID])
);
CREATE NONCLUSTERED INDEX [NC_TEMPLATE] ON [dbo].[EMFModelTemplateWorksheet] ([WorksheetGUID], [ModelTemplateGUID]);
GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [FK_EMFModelTemplateWorksheet_EMFModelTemplate] FOREIGN KEY ([ModelTemplateGUID]) REFERENCES [dbo].[EMFModelTemplate] ([ModelTemplateGUID]); GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFMODELTEMPLATEWORKSHEET_WORKSHEETGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorksheetGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFMODELTEMPLATEWORKSHEET_MODELTEMPLATEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelTemplateGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFMODELTEMPLATEWORKSHEET_WORKSHEETNAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_DESIGNERMETADATAXML] DEFAULT ('') FOR [DesignerMetaData]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_TRANSFORMSTATEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TransformStateGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_IsImprov] DEFAULT ((0)) FOR [IsImprov]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_IsHiddenOnExpand] DEFAULT ((0)) FOR [IsHiddenOnExpand]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_HiddenRows] DEFAULT ((0)) FOR [HiddenRows]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_HiddenColumns] DEFAULT ((0)) FOR [HiddenColumns]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_IsHeadingsHiddenOnExpand] DEFAULT ((0)) FOR [IsHeadingsHiddenOnExpand]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_ZoomLevel] DEFAULT ((0)) FOR [ZoomLevel]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_IsChartsEnabled] DEFAULT ((0)) FOR [IsChartsEnabled]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_IsClearingByNameCell] DEFAULT ((0)) FOR [IsClearingByNameCell]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_NameSourceAddress] DEFAULT ('') FOR [NameSourceAddress]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_DefaultCellAddress] DEFAULT ('') FOR [DefaultCellAddress]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_FreezePanesCellAddress] DEFAULT ('') FOR [FreezePanesCellAddress]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_IsDefaultSheet] DEFAULT ((0)) FOR [IsDefaultSheet]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_CounterCellAddress] DEFAULT ('') FOR [CounterCellAddress]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheet] ADD CONSTRAINT [DF_EMFModelTemplateWorksheet_CloneCount] DEFAULT ((0)) FOR [CloneCount]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFModelTemplateWorksheetRange ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFModelTemplateWorksheetRange] (
[ModelTemplateRangeGUID] uniqueidentifier NOT NULL,
[WorksheetGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(128) NOT NULL,
[RangeName] nvarchar(128) NOT NULL,
[IsCustomizable] bit NOT NULL,
PRIMARY KEY ([ModelTemplateRangeGUID])
);
GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheetRange] ADD CONSTRAINT [FK_EMFModelTemplateWorksheetRange_EMFModelTemplateWorksheet] FOREIGN KEY ([WorksheetGUID]) REFERENCES [dbo].[EMFModelTemplateWorksheet] ([WorksheetGUID]); GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheetRange] ADD CONSTRAINT [DF__EMFModelT__Model__6C2393F0] DEFAULT (newid()) FOR [ModelTemplateRangeGUID]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheetRange] ADD CONSTRAINT [DF__EMFModelTe__Name__6E0BDC62] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheetRange] ADD CONSTRAINT [DF_EMFModelTemplateWorksheetRange_RangeName] DEFAULT ('') FOR [RangeName]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheetRange] ADD CONSTRAINT [DF__EMFModelT__IsCus__6F00009B] DEFAULT ((0)) FOR [IsCustomizable]; GO
ALTER TABLE [dbo].[EMFModelTemplateWorksheetRange] ADD CONSTRAINT [DF__EMFModelT__Works__6D17B829] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorksheetGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFScenario ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFScenario] (
[SCENARIOGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Type] int NOT NULL,
PRIMARY KEY ([SCENARIOGUID])
);
GO
ALTER TABLE [dbo].[EMFScenario] ADD CONSTRAINT [DF_EMFScenario_Type] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[EMFScenario] ADD CONSTRAINT [DF_EMFScenario_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[EMFScenario] ADD CONSTRAINT [DF_EMFScenario_ScenarioGUID] DEFAULT (newid()) FOR [SCENARIOGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFStrataStructureConvertedScoreCompositeLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFStrataStructureConvertedScoreCompositeLink] (
[StructureGUID] uniqueidentifier NOT NULL,
[ScoreCompositeGUID] uniqueidentifier NOT NULL,
[StructureType] int NOT NULL,
PRIMARY KEY ([StructureGUID])
);
GO
ALTER TABLE [dbo].[EMFStrataStructureConvertedScoreCompositeLink] ADD CONSTRAINT [DF__EMFStrata__Struc__420E29EA] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [StructureGUID]; GO
ALTER TABLE [dbo].[EMFStrataStructureConvertedScoreCompositeLink] ADD CONSTRAINT [DF__EMFStrata__Score__43024E23] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScoreCompositeGUID]; GO
ALTER TABLE [dbo].[EMFStrataStructureConvertedScoreCompositeLink] ADD CONSTRAINT [DF__EMFStrata__Struc__43F6725C] DEFAULT ((0)) FOR [StructureType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFSubtable ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFSubtable] (
[SUBTABLEGUID] uniqueidentifier NOT NULL,
[MODELDATACONFIGGUID] uniqueidentifier NOT NULL,
[PARENTSUBTABLEGUID] uniqueidentifier NOT NULL,
[FOLDERGUID] uniqueidentifier NOT NULL,
[NAME] nvarchar(64) NOT NULL,
[DESCRIPTION] nvarchar(450) NOT NULL,
[MEASUREGUID] uniqueidentifier NOT NULL,
[AGGREGATIONFUNCTION] int NOT NULL,
[ISALLOWINGFROZENROWS] bit NOT NULL,
[ISALLOWINGFROZENCOLUMNS] bit NOT NULL,
[CUSTOMMENUGUID] uniqueidentifier NOT NULL,
[IsLoadingExistingData] bit NOT NULL,
[IsReadOnly] bit NOT NULL,
[IsShowingDateTimeStamp] bit NOT NULL,
[RowHeight] int NOT NULL,
[IsShowingModifiedUser] bit NOT NULL,
[IsAutoRefreshingPlanCalculations] bit NOT NULL,
PRIMARY KEY ([SUBTABLEGUID])
);
GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubTableConfig_SUBTABLECONFIGGUID] DEFAULT (newid()) FOR [SUBTABLEGUID]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubTableConfig_SUBTABLEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MODELDATACONFIGGUID]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubTableConfig_PARENTSUBTABLECONFIGGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PARENTSUBTABLEGUID]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubTableConfig_FOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FOLDERGUID]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubTableConfig_NAME] DEFAULT ('') FOR [NAME]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubTableConfig_DESCRIPTION] DEFAULT ('') FOR [DESCRIPTION]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubTableConfig_MEASUREGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MEASUREGUID]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubTableConfig_AGGREGATIONFUNCTION] DEFAULT ((0)) FOR [AGGREGATIONFUNCTION]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubtable_ISALLOWINGNEWROWS] DEFAULT ((1)) FOR [ISALLOWINGFROZENROWS]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubtable_ISALLOWINGNEWCOLUMNS] DEFAULT ((0)) FOR [ISALLOWINGFROZENCOLUMNS]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubtable_CUSTOMMENUGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CUSTOMMENUGUID]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubtable_IsLoadingExistingData] DEFAULT ((1)) FOR [IsLoadingExistingData]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubtable_IsReadOnly] DEFAULT ((0)) FOR [IsReadOnly]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubtable_IsShowingDateTimeStamp] DEFAULT ((0)) FOR [IsShowingDateTimeStamp]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubtable_RowHeight] DEFAULT ((25)) FOR [RowHeight]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubtable_IsShowingLastUserModified] DEFAULT ((0)) FOR [IsShowingModifiedUser]; GO
ALTER TABLE [dbo].[EMFSubtable] ADD CONSTRAINT [DF_EMFSubtable_IsAutoRefreshingPlanCalculations] DEFAULT ((0)) FOR [IsAutoRefreshingPlanCalculations]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFSubtableDefaultTuple ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFSubtableDefaultTuple] (
[SUBTABLEDEFAULTTUPLEGUID] uniqueidentifier NOT NULL,
[SUBTABLEGUID] uniqueidentifier NOT NULL,
[ISONCOLUMN] bit NOT NULL,
[DIMENSIONTUPLEXML] xml NOT NULL,
PRIMARY KEY ([SUBTABLEDEFAULTTUPLEGUID])
);
GO
ALTER TABLE [dbo].[EMFSubtableDefaultTuple] ADD CONSTRAINT [FK_EMFSubtableDefaultTuple_EMFSubtable] FOREIGN KEY ([SUBTABLEGUID]) REFERENCES [dbo].[EMFSubtable] ([SUBTABLEGUID]); GO
ALTER TABLE [dbo].[EMFSubtableDefaultTuple] ADD CONSTRAINT [DF_EMFSubtableDefaultTuple_SUBTABLEDEFAULTTUPLEGUID] DEFAULT (newid()) FOR [SUBTABLEDEFAULTTUPLEGUID]; GO
ALTER TABLE [dbo].[EMFSubtableDefaultTuple] ADD CONSTRAINT [DF_EMFSubtableDefaultTuple_SUBTABLEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SUBTABLEGUID]; GO
ALTER TABLE [dbo].[EMFSubtableDefaultTuple] ADD CONSTRAINT [DF_EMFSubtableDefaultTuple_ISONCOLUMN] DEFAULT ((0)) FOR [ISONCOLUMN]; GO
ALTER TABLE [dbo].[EMFSubtableDefaultTuple] ADD CONSTRAINT [DF_EMFSubtableDefaultTuple_DIMENSIONTUPLEXML] DEFAULT ('') FOR [DIMENSIONTUPLEXML]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFSubtableDimensionLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFSubtableDimensionLink] (
[SUBTABLEDIMENSIONLINKGUID] uniqueidentifier NOT NULL,
[SubtableGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[FilterParentMemberGUID] uniqueidentifier NOT NULL,
[Level] int NOT NULL,
[IsParameter] bit NOT NULL,
[IsAggregable] bit NOT NULL,
[IsDisplayOnColumns] bit NOT NULL,
[IsEditable] bit NOT NULL,
[IsVisible] bit NOT NULL,
[DefaultMemberGUID] uniqueidentifier NOT NULL,
[DisplayOrder] int NOT NULL,
[ColumnWidth] int NOT NULL,
[ISLOADINGCHILDMEMBERS] bit NOT NULL,
[FRIENDLYNAME] nvarchar(64) NOT NULL,
[AutoCompleteSearchType] int NOT NULL,
[IsIgnoringReadSecurity] bit NOT NULL,
PRIMARY KEY ([SUBTABLEDIMENSIONLINKGUID])
);
GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [FK_EMFSubTableDimensionLink_EMFSubTable] FOREIGN KEY ([SubtableGUID]) REFERENCES [dbo].[EMFSubtable] ([SUBTABLEGUID]); GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_IsIgnoringReadSecurity] DEFAULT ((0)) FOR [IsIgnoringReadSecurity]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubTableConfigDimensionLink_SUBTABLECONFIGDIMENSIONLINKGUID] DEFAULT (newid()) FOR [SUBTABLEDIMENSIONLINKGUID]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_SubTableConfigDimensionLink_SUBTABLECONFIGGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SubtableGUID]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_SubTableConfigDimensionLink_DIMENSIONGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubTableConfigDimensionLink_DIMENSIONMEMBERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FilterParentMemberGUID]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubTableConfigDimension_DIMENSIONLEVEL] DEFAULT ((0)) FOR [Level]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_SubTableConfigDimensionLink_ISPARAMETER] DEFAULT ((0)) FOR [IsParameter]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_SubTableConfigDimensionLink_ISAGGREGATABLE] DEFAULT ((0)) FOR [IsAggregable]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_ISDISPLAYONCOLUMNS] DEFAULT ((0)) FOR [IsDisplayOnColumns]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_ISALLOWINGDEFAULTMEMBERONLY] DEFAULT ((1)) FOR [IsEditable]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_ISVISIBLE] DEFAULT ((1)) FOR [IsVisible]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_DEFAULTMEMBERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultMemberGUID]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_DISPLAYORDER] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_COLUMNWIDTH] DEFAULT ((100)) FOR [ColumnWidth]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_ISLOADINGCHILDMEMBERS] DEFAULT ((0)) FOR [ISLOADINGCHILDMEMBERS]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_FRIENDLYNAME] DEFAULT ('') FOR [FRIENDLYNAME]; GO
ALTER TABLE [dbo].[EMFSubtableDimensionLink] ADD CONSTRAINT [DF_EMFSubtableDimensionLink_AutoCompleteSearchType] DEFAULT ((0)) FOR [AutoCompleteSearchType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFSubtableFilter ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFSubtableFilter] (
[SubtableDimensionLinkGUID] uniqueidentifier NOT NULL,
[DimensionMemberGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([SubtableDimensionLinkGUID], [DimensionMemberGUID])
);
GO
ALTER TABLE [dbo].[EMFSubtableFilter] ADD CONSTRAINT [FK_EMFSubTableFilter_EMFSubTableDimensionLink] FOREIGN KEY ([SubtableDimensionLinkGUID]) REFERENCES [dbo].[EMFSubtableDimensionLink] ([SUBTABLEDIMENSIONLINKGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.EMFSubtableMeasureLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[EMFSubtableMeasureLink] (
[SubtableMeasureLinkGUID] uniqueidentifier NOT NULL,
[SubtableGUID] uniqueidentifier NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[AggregationFunction] int NOT NULL,
[DisplayOrder] int NOT NULL,
[ColumnWidth] int NOT NULL,
[IsRequired] bit NOT NULL,
[IsReadOnly] bit NOT NULL,
PRIMARY KEY ([SubtableMeasureLinkGUID])
);
GO
ALTER TABLE [dbo].[EMFSubtableMeasureLink] ADD CONSTRAINT [DF_EMFSubtableMeasureLink_SUBTABLEMEASURELINKGUID] DEFAULT (newid()) FOR [SubtableMeasureLinkGUID]; GO
ALTER TABLE [dbo].[EMFSubtableMeasureLink] ADD CONSTRAINT [DF_EMFSubtableMeasureLink_AGGREGATIONFUNCTION] DEFAULT ((0)) FOR [AggregationFunction]; GO
ALTER TABLE [dbo].[EMFSubtableMeasureLink] ADD CONSTRAINT [DF_EMFSubtableMeasureLink_DISPLAYORDER] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[EMFSubtableMeasureLink] ADD CONSTRAINT [DF_EMFSubtableMeasureLink_COLUMNWIDTH] DEFAULT ((125)) FOR [ColumnWidth]; GO
ALTER TABLE [dbo].[EMFSubtableMeasureLink] ADD CONSTRAINT [DF_EMFSubtableMeasureLink_IsRequired] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[EMFSubtableMeasureLink] ADD CONSTRAINT [DF_EMFSubtableMeasureLink_IsReadOnly] DEFAULT ((0)) FOR [IsReadOnly]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EmailMessage ------------------
---------------------------------------------
CREATE TABLE [dbo].[EmailMessage] (
[EmailMessageGUID] uniqueidentifier NOT NULL,
[EmailThreadGUID] uniqueidentifier NOT NULL,
[Subject] nvarchar(450) NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[Body] nvarchar(max) NOT NULL,
[SenderUserGUID] uniqueidentifier NOT NULL,
[Priority] tinyint NOT NULL,
PRIMARY KEY ([EmailMessageGUID])
);
GO
ALTER TABLE [dbo].[EmailMessage] ADD CONSTRAINT [FK_EmailMessage_EmailThread] FOREIGN KEY ([EmailThreadGUID]) REFERENCES [dbo].[EmailThread] ([EmailThreadGUID]); GO
ALTER TABLE [dbo].[EmailMessage] ADD CONSTRAINT [DF_EmailMessage_EmailMessageThreadGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EmailThreadGUID]; GO
ALTER TABLE [dbo].[EmailMessage] ADD CONSTRAINT [DF_EmailMessage_EmailMessageGUID] DEFAULT (newid()) FOR [EmailMessageGUID]; GO
ALTER TABLE [dbo].[EmailMessage] ADD CONSTRAINT [DF_EmailMessage_Subject] DEFAULT ('') FOR [Subject]; GO
ALTER TABLE [dbo].[EmailMessage] ADD CONSTRAINT [DF_EmailMessage_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[EmailMessage] ADD CONSTRAINT [DF_EmailMessage_Body] DEFAULT ('') FOR [Body]; GO
ALTER TABLE [dbo].[EmailMessage] ADD CONSTRAINT [DF_EmailMessage_SenderUserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SenderUserGUID]; GO
ALTER TABLE [dbo].[EmailMessage] ADD CONSTRAINT [DF_EmailMessage_Priority] DEFAULT ((0)) FOR [Priority]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EmailRecipient ------------------
---------------------------------------------
CREATE TABLE [dbo].[EmailRecipient] (
[EmailRecipientGUID] uniqueidentifier NOT NULL,
[EmailMessageGUID] uniqueidentifier NOT NULL,
[IdentityGUID] uniqueidentifier NOT NULL,
[IdentityType] tinyint NOT NULL,
[RecipientType] tinyint NOT NULL,
PRIMARY KEY ([EmailRecipientGUID])
);
GO
ALTER TABLE [dbo].[EmailRecipient] ADD CONSTRAINT [FK_EmailRecipient_EmailMessage] FOREIGN KEY ([EmailMessageGUID]) REFERENCES [dbo].[EmailMessage] ([EmailMessageGUID]); GO
ALTER TABLE [dbo].[EmailRecipient] ADD CONSTRAINT [DF_EmailRecipient_EmailMessageGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EmailMessageGUID]; GO
ALTER TABLE [dbo].[EmailRecipient] ADD CONSTRAINT [DF_EmailRecipient_IdentityGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [IdentityGUID]; GO
ALTER TABLE [dbo].[EmailRecipient] ADD CONSTRAINT [DF_EmailRecipient_EmailRecipientGUID] DEFAULT (newid()) FOR [EmailRecipientGUID]; GO
ALTER TABLE [dbo].[EmailRecipient] ADD CONSTRAINT [DF_EmailRecipient_IdentityType] DEFAULT ((0)) FOR [IdentityType]; GO
ALTER TABLE [dbo].[EmailRecipient] ADD CONSTRAINT [DF_EmailRecipient_RecipientType] DEFAULT ((0)) FOR [RecipientType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EmailThread ------------------
---------------------------------------------
CREATE TABLE [dbo].[EmailThread] (
[EmailThreadGUID] uniqueidentifier NOT NULL,
[Subject] nvarchar(450) NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[ItemGUID] uniqueidentifier NOT NULL,
[IsForReporting] bit NOT NULL,
[IsPrivate] bit NOT NULL,
PRIMARY KEY ([EmailThreadGUID])
);
GO
ALTER TABLE [dbo].[EmailThread] ADD CONSTRAINT [DF_EmailThread_EmailThreadGUID] DEFAULT (newid()) FOR [EmailThreadGUID]; GO
ALTER TABLE [dbo].[EmailThread] ADD CONSTRAINT [DF_EmailThread_Subject] DEFAULT ('') FOR [Subject]; GO
ALTER TABLE [dbo].[EmailThread] ADD CONSTRAINT [DF_EmailThread_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[EmailThread] ADD CONSTRAINT [DF_EmailThread_ItemGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ItemGUID]; GO
ALTER TABLE [dbo].[EmailThread] ADD CONSTRAINT [DF_EmailThread_IsPrivate] DEFAULT ((0)) FOR [IsPrivate]; GO
ALTER TABLE [dbo].[EmailThread] ADD CONSTRAINT [DF_EmailThread_IsForReporting] DEFAULT ((0)) FOR [IsForReporting]; GO
---------------------------------------------
---------------------------------------------
-- dbo.EntityView ------------------
---------------------------------------------
CREATE TABLE [dbo].[EntityView] (
[ENTITYVIEWGUID] uniqueidentifier NOT NULL,
[NAME] nvarchar(64) NOT NULL,
[DESCRIPTION] nvarchar(4000) NOT NULL,
[DATECREATED] datetime NOT NULL,
[FOLDERGUID] uniqueidentifier NOT NULL,
[USERGUID] uniqueidentifier NOT NULL,
[VIEWTYPE] int NOT NULL,
[SearchText] nvarchar(max) NOT NULL,
[SearchDescription] nvarchar(max) NOT NULL,
[ProviderType] int NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[GridTemplateGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ENTITYVIEWGUID])
);
GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_View_VIEWGUID] DEFAULT (newid()) FOR [ENTITYVIEWGUID]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_View_NAME] DEFAULT ('') FOR [NAME]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_EntityView_DESCRIPTION] DEFAULT ('') FOR [DESCRIPTION]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_EntityView_FOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FOLDERGUID]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_EntityView_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [USERGUID]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_EntityView_VIEWTYPE] DEFAULT ((0)) FOR [VIEWTYPE]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_EntityView_GridTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GridTemplateGUID]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_EntityView_SearchText] DEFAULT ('') FOR [SearchText]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_EntityView_SearchDescription] DEFAULT ('') FOR [SearchDescription]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_EntityView_ProviderType] DEFAULT ((0)) FOR [ProviderType]; GO
ALTER TABLE [dbo].[EntityView] ADD CONSTRAINT [DF_EntityView_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.Event ------------------
---------------------------------------------
CREATE TABLE [dbo].[Event] (
[EventName] varchar(64) NOT NULL,
[Version] timestamp NOT NULL,
PRIMARY KEY ([EventName])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ExtractReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[ExtractReportSetup] (
[ExtractReportSetupID] int NOT NULL,
[Name] nvarchar(200) NOT NULL,
[ColumnSetupXML] nvarchar(max) NOT NULL,
[SetupXML] nvarchar(max) NOT NULL,
[ReportTypeVal] tinyint NOT NULL
);
GO
ALTER TABLE [dbo].[ExtractReportSetup] ADD CONSTRAINT [DF__ExtractRep__Name__4C5C079B] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[ExtractReportSetup] ADD CONSTRAINT [DF__ExtractRe__Colum__4D502BD4] DEFAULT ('') FOR [ColumnSetupXML]; GO
ALTER TABLE [dbo].[ExtractReportSetup] ADD CONSTRAINT [DF__ExtractRe__Setup__4E44500D] DEFAULT ('') FOR [SetupXML]; GO
ALTER TABLE [dbo].[ExtractReportSetup] ADD CONSTRAINT [DF__ExtractRe__Repor__4F387446] DEFAULT ((0)) FOR [ReportTypeVal]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2AccessOverride ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2AccessOverride] (
[AccessOverrideGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[IsWriteDeny] bit NOT NULL,
[IsWriteAllow] bit NOT NULL,
PRIMARY KEY ([AccessOverrideGUID])
);
CREATE NONCLUSTERED INDEX [NCNU_FormFieldGUID] ON [dbo].[FE2AccessOverride] ([FormFieldGUID]);
CREATE NONCLUSTERED INDEX [NCNU_FormFieldGUID_EntityGUID] ON [dbo].[FE2AccessOverride] ([FormFieldGUID], [EntityGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [NCU_FormFieldGUID_EntityGUID_UserGUID] ON [dbo].[FE2AccessOverride] ([FormFieldGUID], [EntityGUID], [UserGUID]);
GO
ALTER TABLE [dbo].[FE2AccessOverride] ADD CONSTRAINT [FK_FE2AccessOverride_UserProfile] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[FE2AccessOverride] ADD CONSTRAINT [FK_FE2AccessOverride_XPlan] FOREIGN KEY ([EntityGUID]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[FE2AccessOverride] ADD CONSTRAINT [DF_FE2AccessOverride_IsReadDeny] DEFAULT ((0)) FOR [IsWriteDeny]; GO
ALTER TABLE [dbo].[FE2AccessOverride] ADD CONSTRAINT [DF_FE2AccessOverride_IsWriteAllow] DEFAULT ((0)) FOR [IsWriteAllow]; GO
ALTER TABLE [dbo].[FE2AccessOverride] ADD CONSTRAINT [DF_FE2AccessOverride_AccessOverrideGUID] DEFAULT (newid()) FOR [AccessOverrideGUID]; GO
ALTER TABLE [dbo].[FE2AccessOverride] ADD CONSTRAINT [DF_FE2AccessOverride_FormFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormFieldGUID]; GO
ALTER TABLE [dbo].[FE2AccessOverride] ADD CONSTRAINT [DF_FE2AccessOverride_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[FE2AccessOverride] ADD CONSTRAINT [DF_FE2AccessOverride_EntityGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2CapitalHiddenElement_TK28067 ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2CapitalHiddenElement_TK28067] (
[FormElementGUID] uniqueidentifier NOT NULL,
[FormGUID] uniqueidentifier NOT NULL,
[ProjectTypeID] int NOT NULL
);
GO
ALTER TABLE [dbo].[FE2CapitalHiddenElement_TK28067] ADD CONSTRAINT [FK__FE2Capita__FormG__7AABE50F] FOREIGN KEY ([FormGUID]) REFERENCES [dbo].[FE2Form] ([FormGUID]); GO
ALTER TABLE [dbo].[FE2CapitalHiddenElement_TK28067] ADD CONSTRAINT [DF__FE2Capita__Proje__7BA00948] DEFAULT ((0)) FOR [ProjectTypeID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2Form ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2Form] (
[FormGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(400) NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[CustomToolbarGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[IsHidden] bit NOT NULL,
[CustomMenuGUID] uniqueidentifier NOT NULL,
[OldFormGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([FormGUID])
);
GO
ALTER TABLE [dbo].[FE2Form] ADD CONSTRAINT [DF__FE2Form__OldForm__21DE87B2] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OldFormGUID]; GO
ALTER TABLE [dbo].[FE2Form] ADD CONSTRAINT [DF__FE2Form__PlanTyp__7691D4F5] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[FE2Form] ADD CONSTRAINT [DF__FE2Form__FormGUI__35B835D1] DEFAULT (newid()) FOR [FormGUID]; GO
ALTER TABLE [dbo].[FE2Form] ADD CONSTRAINT [DF__FE2Form__Name__36AC5A0A] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[FE2Form] ADD CONSTRAINT [DF__FE2Form__Descrip__37A07E43] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[FE2Form] ADD CONSTRAINT [DF__FE2Form__GlobalI__3894A27C] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[FE2Form] ADD CONSTRAINT [DF__FE2Form__CustomT__3988C6B5] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CustomToolbarGUID]; GO
ALTER TABLE [dbo].[FE2Form] ADD CONSTRAINT [DF__FE2Form__IsHidde__6A8E52C8] DEFAULT ((0)) FOR [IsHidden]; GO
ALTER TABLE [dbo].[FE2Form] ADD CONSTRAINT [DF__FE2Form__CustomM__713B5057] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CustomMenuGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2FormField ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2FormField] (
[FormFieldGUID] uniqueidentifier NOT NULL,
[FormSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NULL,
[GlobalID] nvarchar(100) NOT NULL,
[FieldType] tinyint NOT NULL,
[DataSourceType] tinyint NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[Row] int NOT NULL,
[Col] int NOT NULL,
[HelpText] nvarchar(2000) NOT NULL,
[FormatString] nvarchar(100) NOT NULL,
[DisplayOrder] int NOT NULL,
[ColSpan] tinyint NOT NULL,
[IsReadOnly] bit NOT NULL,
[IsRequired] tinyint NOT NULL,
[DefaultSortOrder] tinyint NOT NULL,
[HelpTextDisplayType] tinyint NOT NULL,
[DefaultValue] nvarchar(450) NOT NULL,
[MinValue] decimal NOT NULL,
[MaxValue] decimal NOT NULL,
[MinLength] int NOT NULL,
[MaxLength] int NOT NULL,
[SpecialFieldClassName] nvarchar(100) NOT NULL,
[SpecialFieldConfig] nvarchar(max) NOT NULL,
[ComputedFieldClassName] nvarchar(100) NOT NULL,
[ComputedFieldConfig] nvarchar(max) NOT NULL,
[ListSourceClassName] nvarchar(100) NOT NULL,
[ListSourceConfig] nvarchar(max) NOT NULL,
[IsFullTextSearchable] bit NOT NULL,
[Abbreviation] nvarchar(100) NOT NULL,
[HasLabel] bit NOT NULL,
[RenderType] int NOT NULL,
[RenderThreshold] float NOT NULL,
[RenderComparisonFieldGUID] uniqueidentifier NOT NULL,
[RenderComparisonOperator] int NOT NULL,
[OldFormFieldGUID] uniqueidentifier NOT NULL,
[OldFormFieldName] nvarchar(450) NULL,
[ShowInDirectory] bit NOT NULL,
[IsEditableInDirectory] bit NOT NULL,
[Height] int NOT NULL,
[IsDeletable] bit NOT NULL,
[IsStrataField] bit NOT NULL,
[IsDesignerEditable] bit NOT NULL,
[IsDesignerHidden] bit NOT NULL,
PRIMARY KEY ([FormFieldGUID])
);
GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [FK__FE2FormFi__FormS__506C2C0D] FOREIGN KEY ([FormSectionGUID]) REFERENCES [dbo].[FE2FormSection] ([FormSectionGUID]); GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_ComputedFieldClassName] DEFAULT ('') FOR [ComputedFieldClassName]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_ComputedFieldConfig] DEFAULT ('') FOR [ComputedFieldConfig]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__HasLa__06366D3D] DEFAULT ((1)) FOR [HasLabel]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Rende__072A9176] DEFAULT ((0)) FOR [RenderType]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Rende__081EB5AF] DEFAULT ((0)) FOR [RenderThreshold]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Rende__0912D9E8] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RenderComparisonFieldGUID]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__ListS__09A4A969] DEFAULT ('') FOR [ListSourceClassName]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Rende__0A06FE21] DEFAULT ((0)) FOR [RenderComparisonOperator]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__ListS__0A98CDA2] DEFAULT ('') FOR [ListSourceConfig]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_OldFormFieldName] DEFAULT ('') FOR [OldFormFieldName]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Sourc__5530E12A] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataSourceGUID]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__ShowI__1FF63F40] DEFAULT ((0)) FOR [ShowInDirectory]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_OldFormFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OldFormFieldGUID]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__FormF__4F7807D4] DEFAULT (newid()) FOR [FormFieldGUID]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFie__Name__51605046] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Globa__5254747F] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Field__534898B8] DEFAULT ((0)) FOR [FieldType]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Sourc__543CBCF1] DEFAULT ((0)) FOR [DataSourceType]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFiel__Row__56250563] DEFAULT ((0)) FOR [Row]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFiel__Col__5719299C] DEFAULT ((0)) FOR [Col]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__IsDes__585960DA] DEFAULT ((0)) FOR [IsDesignerHidden]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__HelpT__59F59647] DEFAULT ('') FOR [HelpText]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Forma__5AE9BA80] DEFAULT ('') FOR [FormatString]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Heigh__5F4853FC] DEFAULT ((0)) FOR [Height]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Displ__637F0081] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__ColSp__656748F3] DEFAULT ((0)) FOR [ColSpan]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_IsReadOnly] DEFAULT ((0)) FOR [IsReadOnly]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_IsRequired] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_DefaultSortOrder] DEFAULT ((0)) FOR [DefaultSortOrder]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_HelpTextDisplayType] DEFAULT ((0)) FOR [HelpTextDisplayType]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_DefaultValue] DEFAULT ('') FOR [DefaultValue]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_MinValue] DEFAULT ((0)) FOR [MinValue]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__IsFul__6B827701] DEFAULT ((0)) FOR [IsFullTextSearchable]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_MaxValue] DEFAULT ((0)) FOR [MaxValue]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF_FE2FormField_Abbreviation] DEFAULT ('') FOR [Abbreviation]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__MinLe__3A42832D] DEFAULT ((0)) FOR [MinLength]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__MaxLe__394E5EF4] DEFAULT ((0)) FOR [MaxLength]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__IsEdi__75E0D53A] DEFAULT ((0)) FOR [IsEditableInDirectory]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__IsDel__76DB542B] DEFAULT ((1)) FOR [IsDeletable]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Speci__796E41A0] DEFAULT ('') FOR [SpecialFieldClassName]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__Speci__7A6265D9] DEFAULT ('') FOR [SpecialFieldConfig]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__IsStr__7D15E43D] DEFAULT ((0)) FOR [IsStrataField]; GO
ALTER TABLE [dbo].[FE2FormField] ADD CONSTRAINT [DF__FE2FormFi__IsDes__7E0A0876] DEFAULT ((1)) FOR [IsDesignerEditable]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2FormFieldRefreshRequest ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2FormFieldRefreshRequest] (
[RequestGUID] uniqueidentifier NOT NULL,
[FormFieldGUIDCSV] nvarchar(max) NOT NULL,
[PlanLookupSQL] nvarchar(max) NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([RequestGUID])
);
GO
ALTER TABLE [dbo].[FE2FormFieldRefreshRequest] ADD CONSTRAINT [DF_FE2FormFieldRefreshRequest_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[FE2FormFieldRefreshRequest] ADD CONSTRAINT [DF_FE2FormFieldRefreshRequest_RequestGUID] DEFAULT (newid()) FOR [RequestGUID]; GO
ALTER TABLE [dbo].[FE2FormFieldRefreshRequest] ADD CONSTRAINT [DF_FE2FormFieldRefreshRequest_FormFieldGUIDCSV] DEFAULT ('') FOR [FormFieldGUIDCSV]; GO
ALTER TABLE [dbo].[FE2FormFieldRefreshRequest] ADD CONSTRAINT [DF_FE2FormFieldRefreshRequest_PlanLookupSQL] DEFAULT ('') FOR [PlanLookupSQL]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2FormFieldSynonym ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2FormFieldSynonym] (
[SynonymGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
PRIMARY KEY ([SynonymGUID])
);
GO
ALTER TABLE [dbo].[FE2FormFieldSynonym] ADD CONSTRAINT [FK_FE2FormFieldSynonym_FE2FormField] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FE2FormField] ([FormFieldGUID]); GO
ALTER TABLE [dbo].[FE2FormFieldSynonym] ADD CONSTRAINT [DF_FEFormFieldSynonym_SynonymGUID] DEFAULT (newid()) FOR [SynonymGUID]; GO
ALTER TABLE [dbo].[FE2FormFieldSynonym] ADD CONSTRAINT [DF_FEFormFieldSynonym_Value] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[FE2FormFieldSynonym] ADD CONSTRAINT [DF_FEFormFieldSynonym_FormFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormFieldGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2FormSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2FormSection] (
[FormSectionGUID] uniqueidentifier NOT NULL,
[FormTabGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[DisplayOrder] int NOT NULL,
[ColumnCount] int NOT NULL,
[HasSectionBreak] bit NOT NULL,
[LabelAlign] tinyint NOT NULL,
[LabelWidth] int NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[IsPrintable] bit NOT NULL,
[IsPageBreak] bit NOT NULL,
PRIMARY KEY ([FormSectionGUID])
);
GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [FK__FE2FormSe__FormT__46E2C1D3] FOREIGN KEY ([FormTabGUID]) REFERENCES [dbo].[FE2FormTab] ([FormTabGUID]); GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSe__Globa__035A0092] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSe__IsPag__2DB687C9] DEFAULT ((0)) FOR [IsPageBreak]; GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSe__FormS__45EE9D9A] DEFAULT (newid()) FOR [FormSectionGUID]; GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSec__Name__47D6E60C] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSe__Displ__48CB0A45] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSe__Colum__4AB352B7] DEFAULT ((0)) FOR [ColumnCount]; GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSe__IsPri__5E3FEC81] DEFAULT ((1)) FOR [IsPrintable]; GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSe__hasSe__7B568A12] DEFAULT ((1)) FOR [HasSectionBreak]; GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSe__Label__7C4AAE4B] DEFAULT ((0)) FOR [LabelAlign]; GO
ALTER TABLE [dbo].[FE2FormSection] ADD CONSTRAINT [DF__FE2FormSe__Label__7D3ED284] DEFAULT ((0)) FOR [LabelWidth]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2FormTab ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2FormTab] (
[FormTabGUID] uniqueidentifier NOT NULL,
[FormGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[DisplayOrder] int NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[IsPrintable] bit NOT NULL,
PRIMARY KEY ([FormTabGUID])
);
GO
ALTER TABLE [dbo].[FE2FormTab] ADD CONSTRAINT [FK__FE2FormTa__FormG__3F41A00B] FOREIGN KEY ([FormGUID]) REFERENCES [dbo].[FE2Form] ([FormGUID]); GO
ALTER TABLE [dbo].[FE2FormTab] ADD CONSTRAINT [DF__FE2FormTa__Globa__0265DC59] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[FE2FormTab] ADD CONSTRAINT [DF__FE2FormTa__FormT__3E4D7BD2] DEFAULT (newid()) FOR [FormTabGUID]; GO
ALTER TABLE [dbo].[FE2FormTab] ADD CONSTRAINT [DF__FE2FormTab__Name__4035C444] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[FE2FormTab] ADD CONSTRAINT [DF__FE2FormTa__Displ__4129E87D] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[FE2FormTab] ADD CONSTRAINT [DF__FE2FormTa__IsPri__54B05959] DEFAULT ((1)) FOR [IsPrintable]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2FormTextData ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2FormTextData] (
[FormDataGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[Value] nvarchar(max) NOT NULL,
PRIMARY KEY ([FormDataGUID])
);
CREATE NONCLUSTERED INDEX [NUNC_EntityGUID] ON [dbo].[FE2FormTextData] ([EntityGUID]);
GO
ALTER TABLE [dbo].[FE2FormTextData] ADD CONSTRAINT [FK__FE2FormDa__FormF__60A293D6] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FE2FormField] ([FormFieldGUID]); GO
ALTER TABLE [dbo].[FE2FormTextData] ADD CONSTRAINT [FK_FE2FormTextData_EntityID] FOREIGN KEY ([EntityGUID]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[FE2FormTextData] ADD CONSTRAINT [DF__FE2FormDa__Entit__6196B80F] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityGUID]; GO
ALTER TABLE [dbo].[FE2FormTextData] ADD CONSTRAINT [DF__FE2FormDa__FormD__5FAE6F9D] DEFAULT (newid()) FOR [FormDataGUID]; GO
ALTER TABLE [dbo].[FE2FormTextData] ADD CONSTRAINT [DF__FE2FormDa__Value__628ADC48] DEFAULT ('') FOR [Value]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2RuleConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2RuleConfig] (
[RuleConfigGUID] uniqueidentifier NOT NULL,
[FormGUID] uniqueidentifier NOT NULL,
[FormElementGUID] uniqueidentifier NOT NULL,
[RuleClassName] nvarchar(100) NOT NULL,
[RuleXML] nvarchar(max) NOT NULL,
[IsUsingOr] bit NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([RuleConfigGUID])
);
GO
ALTER TABLE [dbo].[FE2RuleConfig] ADD CONSTRAINT [FK__FE2RuleCo__FormG__1E9FC64F] FOREIGN KEY ([FormGUID]) REFERENCES [dbo].[FE2Form] ([FormGUID]); GO
ALTER TABLE [dbo].[FE2RuleConfig] ADD CONSTRAINT [DF__FE2RuleCo__RuleC__1DABA216] DEFAULT (newid()) FOR [RuleConfigGUID]; GO
ALTER TABLE [dbo].[FE2RuleConfig] ADD CONSTRAINT [DF__FE2RuleCo__RuleC__20880EC1] DEFAULT ('') FOR [RuleClassName]; GO
ALTER TABLE [dbo].[FE2RuleConfig] ADD CONSTRAINT [DF__FE2RuleCo__RuleX__217C32FA] DEFAULT ('') FOR [RuleXML]; GO
ALTER TABLE [dbo].[FE2RuleConfig] ADD CONSTRAINT [DF__FE2RuleCo__IsUsi__22705733] DEFAULT ((1)) FOR [IsUsingOr]; GO
ALTER TABLE [dbo].[FE2RuleConfig] ADD CONSTRAINT [DF__FE2RuleCo__Displ__41F05A65] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[FE2RuleConfig] ADD CONSTRAINT [DF__FE2RuleCo__FormE__1F93EA88] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormElementGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2ScriptSnippetHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2ScriptSnippetHistory] (
[SnippetGUID] uniqueidentifier NOT NULL,
[OldValue] nvarchar(max) NOT NULL,
[NewValue] nvarchar(max) NOT NULL,
[IsComplete] bit NOT NULL,
[HistoryGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([SnippetGUID])
);
GO
ALTER TABLE [dbo].[FE2ScriptSnippetHistory] ADD CONSTRAINT [DF_FE2ScriptSnippetHistory_HistoryGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryGUID]; GO
ALTER TABLE [dbo].[FE2ScriptSnippetHistory] ADD CONSTRAINT [DF_FE2ScriptSnippetHistory_SnippetGUID] DEFAULT (newid()) FOR [SnippetGUID]; GO
ALTER TABLE [dbo].[FE2ScriptSnippetHistory] ADD CONSTRAINT [DF_FE2ScriptSnippetHistory_OldValue] DEFAULT ('') FOR [OldValue]; GO
ALTER TABLE [dbo].[FE2ScriptSnippetHistory] ADD CONSTRAINT [DF_FE2ScriptSnippetHistory_NewValue] DEFAULT ('') FOR [NewValue]; GO
ALTER TABLE [dbo].[FE2ScriptSnippetHistory] ADD CONSTRAINT [DF_FE2ScriptSnippetHistory_IsComplete] DEFAULT ((0)) FOR [IsComplete]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FE2ScriptUpgradeHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[FE2ScriptUpgradeHistory] (
[CustomScriptGUID] uniqueidentifier NOT NULL,
[SQLObjectName] nvarchar(100) NOT NULL,
[OldValue] nvarchar(max) NOT NULL,
[NewValue] nvarchar(max) NOT NULL,
[RiskLevel] tinyint NOT NULL,
[IsComplete] bit NOT NULL,
[HistoryGUID] uniqueidentifier NOT NULL,
[ErrorGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([HistoryGUID])
);
GO
ALTER TABLE [dbo].[FE2ScriptUpgradeHistory] ADD CONSTRAINT [DF_FE2ScriptUpgradeHistory_SQLObjectName] DEFAULT ('') FOR [SQLObjectName]; GO
ALTER TABLE [dbo].[FE2ScriptUpgradeHistory] ADD CONSTRAINT [DF_FE2ScriptUpgradeHistory_OldValue] DEFAULT ('') FOR [OldValue]; GO
ALTER TABLE [dbo].[FE2ScriptUpgradeHistory] ADD CONSTRAINT [DF_FE2ScriptUpgradeHistory_NewValue] DEFAULT ('') FOR [NewValue]; GO
ALTER TABLE [dbo].[FE2ScriptUpgradeHistory] ADD CONSTRAINT [DF_FE2ScriptUpgradeHistory_RiskLevel] DEFAULT ((0)) FOR [RiskLevel]; GO
ALTER TABLE [dbo].[FE2ScriptUpgradeHistory] ADD CONSTRAINT [DF_FE2ScriptUpgradeHistory_IsComplete] DEFAULT ((0)) FOR [IsComplete]; GO
ALTER TABLE [dbo].[FE2ScriptUpgradeHistory] ADD CONSTRAINT [DF_FE2ScriptUpgradeHistory_HistoryGUID] DEFAULT (newid()) FOR [HistoryGUID]; GO
ALTER TABLE [dbo].[FE2ScriptUpgradeHistory] ADD CONSTRAINT [DF_FE2ScriptUpgradeHistory_ErrorGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ErrorGUID]; GO
ALTER TABLE [dbo].[FE2ScriptUpgradeHistory] ADD CONSTRAINT [DF_FE2ScriptUpgradeHistory_CustomScriptGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CustomScriptGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEAccessOverride ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEAccessOverride] (
[AccessOverrideGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[IsWriteDeny] bit NOT NULL,
[IsWriteAllow] bit NOT NULL,
PRIMARY KEY ([AccessOverrideGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_FEAccessOverride_Unique] ON [dbo].[FEAccessOverride] ([FormFieldGUID], [EntityGUID], [UserGUID]);
GO
ALTER TABLE [dbo].[FEAccessOverride] ADD CONSTRAINT [FK_FEAccessOverride_FEFormField] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FEFormField] ([FORMFIELDGUID]); GO
ALTER TABLE [dbo].[FEAccessOverride] ADD CONSTRAINT [FK_FEAccessOverride_UserProfile] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[FEAccessOverride] ADD CONSTRAINT [FK_FEAccessOverride_XPlan] FOREIGN KEY ([EntityGUID]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[FEAccessOverride] ADD CONSTRAINT [DF_FEAccessOverride_AccessOverrideGUID] DEFAULT (newid()) FOR [AccessOverrideGUID]; GO
ALTER TABLE [dbo].[FEAccessOverride] ADD CONSTRAINT [DF_FEAccessOverride_FormFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormFieldGUID]; GO
ALTER TABLE [dbo].[FEAccessOverride] ADD CONSTRAINT [DF_Table_1_IdentityGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[FEAccessOverride] ADD CONSTRAINT [DF_FEAccessOverride_EntityGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityGUID]; GO
ALTER TABLE [dbo].[FEAccessOverride] ADD CONSTRAINT [DF_FEAccessOverride_IsReadDeny] DEFAULT ((0)) FOR [IsWriteDeny]; GO
ALTER TABLE [dbo].[FEAccessOverride] ADD CONSTRAINT [DF_FEAccessOverride_IsWriteAllow] DEFAULT ((0)) FOR [IsWriteAllow]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEComment ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEComment] (
[CommentGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[UserNameFull] nvarchar(100) NOT NULL,
[Comment] nvarchar(max) NOT NULL,
[DateTimeStamp] datetime NOT NULL,
PRIMARY KEY ([CommentGUID])
);
GO
ALTER TABLE [dbo].[FEComment] ADD CONSTRAINT [FK_FEComment_XPlan] FOREIGN KEY ([EntityGUID]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[FEComment] ADD CONSTRAINT [DF_Table_1_EntityGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityGUID]; GO
ALTER TABLE [dbo].[FEComment] ADD CONSTRAINT [DF_FEComment_FormFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormFieldGUID]; GO
ALTER TABLE [dbo].[FEComment] ADD CONSTRAINT [DF_FEComment_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[FEComment] ADD CONSTRAINT [DF_FEComment_CommentGUID] DEFAULT (newid()) FOR [CommentGUID]; GO
ALTER TABLE [dbo].[FEComment] ADD CONSTRAINT [DF_FEComment_UserNameFull] DEFAULT ('') FOR [UserNameFull]; GO
ALTER TABLE [dbo].[FEComment] ADD CONSTRAINT [DF_FEComment_Comment] DEFAULT ('') FOR [Comment]; GO
ALTER TABLE [dbo].[FEComment] ADD CONSTRAINT [DF_FEComment_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormData ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormData] (
[FormDataGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[ValueVarChar] nvarchar(max) NOT NULL,
[ValueSearch] nvarchar(max) NULL,
[ValueGUID] uniqueidentifier NOT NULL,
[ValueGUIDS] nvarchar(max) NOT NULL,
[ValueFloat] float NOT NULL,
[ValueDate] datetime NOT NULL,
[ValueBit] bit NOT NULL,
PRIMARY KEY ([FormDataGUID])
);
CREATE CLUSTERED INDEX [IX_FEFormData_FF_E_Cluster] ON [dbo].[FEFormData] ([PlanTypeGUID], [FormFieldGUID], [EntityGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_FEFormData] ON [dbo].[FEFormData] ([EntityGUID], [FormFieldGUID]);
GO
ALTER TABLE [dbo].[FEFormData] ADD CONSTRAINT [FK_FEFormData_FEFormField] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FEFormField] ([FORMFIELDGUID]); GO
ALTER TABLE [dbo].[FEFormData] ADD CONSTRAINT [DF_FEFormData_FORMDATAGUID] DEFAULT (newid()) FOR [FormDataGUID]; GO
ALTER TABLE [dbo].[FEFormData] ADD CONSTRAINT [DF_FEFormData_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[FEFormData] ADD CONSTRAINT [DF_FEFormData_VALUEVARCHAR] DEFAULT ('') FOR [ValueVarChar]; GO
ALTER TABLE [dbo].[FEFormData] ADD CONSTRAINT [DF_FEFormData_VALUEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ValueGUID]; GO
ALTER TABLE [dbo].[FEFormData] ADD CONSTRAINT [DF_FEFormData_VALUEGUIDS] DEFAULT ('') FOR [ValueGUIDS]; GO
ALTER TABLE [dbo].[FEFormData] ADD CONSTRAINT [DF_FEFormData_VALUEFLOAT] DEFAULT ((0)) FOR [ValueFloat]; GO
ALTER TABLE [dbo].[FEFormData] ADD CONSTRAINT [DF_FEFormData_VALUEDATE] DEFAULT (((1)/(1))/(1980)) FOR [ValueDate]; GO
ALTER TABLE [dbo].[FEFormData] ADD CONSTRAINT [DF_FEFormData_VALUEBIT] DEFAULT ((0)) FOR [ValueBit]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormDataHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormDataHistory] (
[RowID] int NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[EntityName] nvarchar(max) NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[FormFieldName] nvarchar(64) NOT NULL,
[ValueVarChar] nvarchar(max) NOT NULL,
[ValueGUID] uniqueidentifier NOT NULL,
[ValueGUIDS] nvarchar(max) NOT NULL,
[ValueFloat] float NOT NULL,
[ValueDate] datetime NOT NULL,
[ValueBit] bit NOT NULL,
[DateTimeStamp] datetime NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[FEFormDataHistory] ADD CONSTRAINT [DF_FEFormDataHistory_FormDataGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityGUID]; GO
ALTER TABLE [dbo].[FEFormDataHistory] ADD CONSTRAINT [DF_FEFormDataHistory_EntityName] DEFAULT ('') FOR [EntityName]; GO
ALTER TABLE [dbo].[FEFormDataHistory] ADD CONSTRAINT [DF_FEFormDataHistory_VALUEVARCHAR] DEFAULT ('') FOR [ValueVarChar]; GO
ALTER TABLE [dbo].[FEFormDataHistory] ADD CONSTRAINT [DF_FEFormDataHistory_VALUEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ValueGUID]; GO
ALTER TABLE [dbo].[FEFormDataHistory] ADD CONSTRAINT [DF_FEFormDataHistory_VALUEGUIDS] DEFAULT ('') FOR [ValueGUIDS]; GO
ALTER TABLE [dbo].[FEFormDataHistory] ADD CONSTRAINT [DF_FEFormDataHistory_VALUEFLOAT] DEFAULT ((0)) FOR [ValueFloat]; GO
ALTER TABLE [dbo].[FEFormDataHistory] ADD CONSTRAINT [DF_FEFormDataHistory_VALUEDATE] DEFAULT (((1)/(1))/(1980)) FOR [ValueDate]; GO
ALTER TABLE [dbo].[FEFormDataHistory] ADD CONSTRAINT [DF_FEFormDataHistory_VALUEBIT] DEFAULT ((0)) FOR [ValueBit]; GO
ALTER TABLE [dbo].[FEFormDataHistory] ADD CONSTRAINT [DF_FEFormDataHistory_HistoryDateTime] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormDef ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormDef] (
[FORMDEFGUID] uniqueidentifier NOT NULL,
[RootFormSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Alias] nvarchar(64) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[ImageIndex] int NOT NULL,
[CustomMenuGUID] uniqueidentifier NOT NULL,
[CustomToolbarGUID] uniqueidentifier NOT NULL,
[StyleIndex] int NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([FORMDEFGUID])
);
GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF_FEFormDef_StyleIndex] DEFAULT ((0)) FOR [StyleIndex]; GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF__FEFormDef__PlanT__759DB0BC] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF__FEFormDef__Globa__194C3D43] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF_FEFormDef_FORMDEFGUID] DEFAULT (newid()) FOR [FORMDEFGUID]; GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF_FEFormDef_ROOTFORMSECTIONGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RootFormSectionGUID]; GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF_FEFormDef_ALIAS] DEFAULT ('') FOR [Alias]; GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF_FEFormDef_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF_FEFormDef_IMAGEINDEX] DEFAULT ((0)) FOR [ImageIndex]; GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF_FEFormDef_CUSTOMMENUGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CustomMenuGUID]; GO
ALTER TABLE [dbo].[FEFormDef] ADD CONSTRAINT [DF_FEFormDef_CUSTOMTOOLBARGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CustomToolbarGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormField ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormField] (
[FORMFIELDGUID] uniqueidentifier NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[Name] nvarchar(100) NOT NULL,
[FieldType] int NOT NULL,
[MaxLength] int NOT NULL,
[MinLength] int NOT NULL,
[DataFormat] nvarchar(256) NOT NULL,
[DefaultValue] nvarchar(1000) NOT NULL,
[HelpText] nvarchar(4000) NOT NULL,
[IsReadOnly] bit NOT NULL,
[HasNumericMaxValue] bit NOT NULL,
[NumericMaxValue] float NOT NULL,
[HasNumericMinValue] bit NOT NULL,
[NumericMinValue] float NOT NULL,
[StringMask] nvarchar(256) NOT NULL,
[DecimalPlaces] int NOT NULL,
[UseThousandsSeparator] bit NOT NULL,
[UseNegParentheses] bit NOT NULL,
[HasLabel] bit NOT NULL,
[LabelDisplayType] int NOT NULL,
[LabelWidth] int NOT NULL,
[IsInDirectory] bit NOT NULL,
[SourceType] int NOT NULL,
[SourcePath] nvarchar(max) NOT NULL,
[SourceGUID] uniqueidentifier NOT NULL,
[Rows] int NOT NULL,
[UsePicker] bit NOT NULL,
[DefaultSortOrder] bit NOT NULL,
[IsRequired] bit NOT NULL,
[Mask] nvarchar(256) NOT NULL,
[HelpTextDisplayType] int NOT NULL,
[HasOptionHelpText] bit NOT NULL,
[DefaultValueType] int NOT NULL,
[Label] nvarchar(450) NOT NULL,
[HasRowNumbers] bit NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[SpecialFieldType] int NOT NULL,
[SourceDisplayFormat] nvarchar(450) NOT NULL,
[ExecutionOrder] int NOT NULL,
[DirectoryName] nvarchar(64) NOT NULL,
[ScaleDisplayFactor] int NOT NULL,
[DateCreated] datetime NOT NULL,
[DateModified] datetime NOT NULL,
[IsRecordingHistory] bit NOT NULL,
[IsCleared] bit NOT NULL,
[DisplayFormatOverride] nvarchar(64) NOT NULL,
[ResizeOffset] int NOT NULL,
[IsSetupLocked] bit NOT NULL,
[IsCoolite] bit NOT NULL,
[IsCopied] bit NOT NULL,
[RenderType] int NOT NULL,
[RenderThreshold] float NOT NULL,
[RenderComparisonFieldGUID] uniqueidentifier NOT NULL,
[RenderComparisonOperator] int NOT NULL,
[RefreshMode] tinyint NOT NULL,
[TypeConfigXML] xml NOT NULL,
PRIMARY KEY ([FORMFIELDGUID])
);
CREATE NONCLUSTERED INDEX [IX_FEFormField_1] ON [dbo].[FEFormField] ([SourceType]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_FEFormField] ON [dbo].[FEFormField] ([Name]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_FEFormField_GlobalID] ON [dbo].[FEFormField] ([GlobalID]);
GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_DATAFORMAT] DEFAULT ('') FOR [DataFormat]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_DEFAULTVALUE] DEFAULT ('') FOR [DefaultValue]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_HELPTEXT] DEFAULT ('') FOR [HelpText]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_ISREADONLY] DEFAULT ((0)) FOR [IsReadOnly]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_HASNUMERICMAXVALUE] DEFAULT ((0)) FOR [HasNumericMaxValue]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_NUMERICMAXVALUE] DEFAULT ((0)) FOR [NumericMaxValue]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_HASNUMERICMINVALUE] DEFAULT ((0)) FOR [HasNumericMinValue]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_NUMERICMINVALUE] DEFAULT ((0)) FOR [NumericMinValue]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_STRINGMASK] DEFAULT ('') FOR [StringMask]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_DECIMALPLACES] DEFAULT ((0)) FOR [DecimalPlaces]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_USETHOUSANDSSEPARATOR] DEFAULT ((1)) FOR [UseThousandsSeparator]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_USENEGPARENTHESE] DEFAULT ((0)) FOR [UseNegParentheses]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_HASLABEL] DEFAULT ((1)) FOR [HasLabel]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_LABELDISPLAYTYPE] DEFAULT ((0)) FOR [LabelDisplayType]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_RefreshMode] DEFAULT ((0)) FOR [RefreshMode]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_LABELWIDTH] DEFAULT ((100)) FOR [LabelWidth]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_LABEL] DEFAULT ('') FOR [Label]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_ISINDIRECTORY] DEFAULT ((0)) FOR [IsInDirectory]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_SOURCETYPE] DEFAULT ((0)) FOR [SourceType]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_SOURCEPATH] DEFAULT ('') FOR [SourcePath]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_SOURCEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SourceGUID]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_ROWS] DEFAULT ((0)) FOR [Rows]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_USEPICKER] DEFAULT ((0)) FOR [UsePicker]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_DEFAULTSORTORDER] DEFAULT ((0)) FOR [DefaultSortOrder]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_ISREQUIRED] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_MASK] DEFAULT ('') FOR [Mask]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_HELPTEXTDISPLAYTYPE] DEFAULT ((0)) FOR [HelpTextDisplayType]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_HASOPTIONHELPTEXT] DEFAULT ((0)) FOR [HasOptionHelpText]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_DEFAULTVALUETYPE] DEFAULT ((0)) FOR [DefaultValueType]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_HASROWNUMBERS] DEFAULT ((1)) FOR [HasRowNumbers]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_FOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_SPECIALFIELDTYPE] DEFAULT ((0)) FOR [SpecialFieldType]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_SOURCEDISPLAYFORMAT] DEFAULT ('') FOR [SourceDisplayFormat]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_EXECUTIONORDER] DEFAULT ((0)) FOR [ExecutionOrder]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_DirectoryName] DEFAULT ('') FOR [DirectoryName]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_ScaleDisplayFactor] DEFAULT ((1)) FOR [ScaleDisplayFactor]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_DateCreated] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_DateModified] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF__FEFormFie__IsRec__4AC6670E] DEFAULT ((0)) FOR [IsRecordingHistory]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_IsCleared] DEFAULT ((0)) FOR [IsCleared]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_DisplayFormatOverride] DEFAULT ('') FOR [DisplayFormatOverride]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_ResizeOffset] DEFAULT ((0)) FOR [ResizeOffset]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_IsSetupLocked] DEFAULT ((0)) FOR [IsSetupLocked]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_IsCoolite] DEFAULT ((0)) FOR [IsCoolite]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_RenderType] DEFAULT ((0)) FOR [RenderType]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_RenderThreshold] DEFAULT ((0)) FOR [RenderThreshold]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_RenderComparisonFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RenderComparisonFieldGUID]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_RenderComparisonOperator] DEFAULT ((0)) FOR [RenderComparisonOperator]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_IsCopied] DEFAULT ((1)) FOR [IsCopied]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_TypeConfigXML] DEFAULT ('') FOR [TypeConfigXML]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_FORMFIELDGUID] DEFAULT (newid()) FOR [FORMFIELDGUID]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_FIELDTYPE] DEFAULT ((0)) FOR [FieldType]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FormField_MAXLENGTH] DEFAULT ((0)) FOR [MaxLength]; GO
ALTER TABLE [dbo].[FEFormField] ADD CONSTRAINT [DF_FEFormField_MINLENGTH] DEFAULT ((0)) FOR [MinLength]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormFieldCalculationTestResult ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormFieldCalculationTestResult] (
[FormFieldGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[IsSuccess] bit NOT NULL,
[Duration] int NOT NULL,
[RunDate] datetime NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormFieldDefaultOverride ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormFieldDefaultOverride] (
[DefaultOverrideGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[FormDefGUID] uniqueidentifier NOT NULL,
[DefaultValueType] int NOT NULL,
[DefaultValue] nvarchar(1000) NOT NULL,
[DisplayValue] nvarchar(450) NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([DefaultOverrideGUID])
);
GO
ALTER TABLE [dbo].[FEFormFieldDefaultOverride] ADD CONSTRAINT [FK_FEFormFieldDefaultOverride_FEFormDef] FOREIGN KEY ([FormDefGUID]) REFERENCES [dbo].[FEFormDef] ([FORMDEFGUID]); GO
ALTER TABLE [dbo].[FEFormFieldDefaultOverride] ADD CONSTRAINT [FK_FEFormFieldDefaultOverride_FEFormField] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FEFormField] ([FORMFIELDGUID]); GO
ALTER TABLE [dbo].[FEFormFieldDefaultOverride] ADD CONSTRAINT [DF_FEFormFieldDefaultOverride_DefaultOverrideGUID] DEFAULT (newid()) FOR [DefaultOverrideGUID]; GO
ALTER TABLE [dbo].[FEFormFieldDefaultOverride] ADD CONSTRAINT [DF_FEFormFieldDefaultOverride_DefaultValueType] DEFAULT ((0)) FOR [DefaultValueType]; GO
ALTER TABLE [dbo].[FEFormFieldDefaultOverride] ADD CONSTRAINT [DF_FEFormFieldDefaultOverride_DefaultValue] DEFAULT ('') FOR [DefaultValue]; GO
ALTER TABLE [dbo].[FEFormFieldDefaultOverride] ADD CONSTRAINT [DF_FEFormFieldDefaultOverride_DisplayValue] DEFAULT ('') FOR [DisplayValue]; GO
ALTER TABLE [dbo].[FEFormFieldDefaultOverride] ADD CONSTRAINT [DF_FEFormFieldDefaultOverride_FormDefGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormDefGUID]; GO
ALTER TABLE [dbo].[FEFormFieldDefaultOverride] ADD CONSTRAINT [DF_FEFormFieldDefaultOverride_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[FEFormFieldDefaultOverride] ADD CONSTRAINT [DF_FEFormFieldDefaultOverride_FormFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormFieldGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormFieldSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormFieldSetup] (
[FORMFIELDSETUPGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[FormDefGUID] uniqueidentifier NOT NULL,
[FormSectionGUID] uniqueidentifier NOT NULL,
[SetupUsePicker] bit NOT NULL,
[SetupDecimalPlaces] int NOT NULL,
[SetupUseThousandsSeparator] bit NOT NULL,
[SetupUseNegParentheses] bit NOT NULL,
[SetupHasLabel] bit NOT NULL,
[SetupLabelDisplayType] int NOT NULL,
[SetupRows] int NOT NULL,
[SetupIsReadOnly] bit NOT NULL,
[SetupLabelWidth] int NOT NULL,
[SetupHelpTextDisplayType] int NOT NULL,
[SetupHasOptionHelpText] bit NOT NULL,
[SetupHasRowNumbers] bit NOT NULL,
[SetupResizeOffset] int NOT NULL,
PRIMARY KEY ([FORMFIELDSETUPGUID])
);
CREATE CLUSTERED INDEX [IX_FEFormFieldSetup_FormDef] ON [dbo].[FEFormFieldSetup] ([FormDefGUID]);
CREATE NONCLUSTERED INDEX [IX_FEFormFieldSetup_FormField] ON [dbo].[FEFormFieldSetup] ([FormFieldGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_FEFormFieldSetup] ON [dbo].[FEFormFieldSetup] ([FormFieldGUID], [FormDefGUID]);
GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [FK_FEFormFieldSetup_FEFormDef] FOREIGN KEY ([FormDefGUID]) REFERENCES [dbo].[FEFormDef] ([FORMDEFGUID]); GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [FK_FEFormFieldSetup_FEFormField] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FEFormField] ([FORMFIELDGUID]); GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_FORMFIELDSETUPGUID] DEFAULT (newid()) FOR [FORMFIELDSETUPGUID]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_FORMFIELDGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [FormFieldGUID]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_FORMGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [FormDefGUID]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_FormFieldSectionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormSectionGUID]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_USEPICKER] DEFAULT ((0)) FOR [SetupUsePicker]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_DECIMALPLACES] DEFAULT ((0)) FOR [SetupDecimalPlaces]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_USETHOUSANDSSEPARATOR] DEFAULT ((1)) FOR [SetupUseThousandsSeparator]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_USENEGPARENTHESES] DEFAULT ((0)) FOR [SetupUseNegParentheses]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_HASLABEL] DEFAULT ((1)) FOR [SetupHasLabel]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_LABELDISPLAYTYPE] DEFAULT ((0)) FOR [SetupLabelDisplayType]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_ROWS] DEFAULT ((0)) FOR [SetupRows]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_ISREADONLY] DEFAULT ((0)) FOR [SetupIsReadOnly]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_SETUPLABELWIDTH] DEFAULT ((100)) FOR [SetupLabelWidth]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_SETUPHELPTEXTDISPLAYTYPE] DEFAULT ((0)) FOR [SetupHelpTextDisplayType]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_SETUPHASOPTIONHELPTEXT] DEFAULT ((0)) FOR [SetupHasOptionHelpText]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_SETUPHASROWNUMBERS] DEFAULT ((1)) FOR [SetupHasRowNumbers]; GO
ALTER TABLE [dbo].[FEFormFieldSetup] ADD CONSTRAINT [DF_FEFormFieldSetup_SetupResizeOffset] DEFAULT ((0)) FOR [SetupResizeOffset]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormFieldSynonym ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormFieldSynonym] (
[SynonymGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
PRIMARY KEY ([SynonymGUID])
);
GO
ALTER TABLE [dbo].[FEFormFieldSynonym] ADD CONSTRAINT [DF_FEFormFieldSynonym_FormFieldGUID_1] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormFieldGUID]; GO
ALTER TABLE [dbo].[FEFormFieldSynonym] ADD CONSTRAINT [DF_FEFormFieldSynonym_SynonymGUID_1] DEFAULT (newid()) FOR [SynonymGUID]; GO
ALTER TABLE [dbo].[FEFormFieldSynonym] ADD CONSTRAINT [DF_FEFormFieldSynonym_Name] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormSection] (
[FORMSECTIONGUID] uniqueidentifier NOT NULL,
[FormDefGUID] uniqueidentifier NOT NULL,
[ParentFormSectionGUID] uniqueidentifier NOT NULL,
[DisplayOrder] int NOT NULL,
[Name] nvarchar(64) NOT NULL,
[DisplayChildrenAsTabs] bit NOT NULL,
[Height] int NOT NULL,
[Width] int NOT NULL,
[HTML] nvarchar(max) NOT NULL,
[HTMLDesign] nvarchar(max) NOT NULL,
[IsParentSection] bit NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[RuleGroupType] int NOT NULL,
[IsBreakVisible] bit NOT NULL,
[IsAjaxEnabled] bit NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[DisplayMode] int NOT NULL,
PRIMARY KEY ([FORMSECTIONGUID])
);
CREATE CLUSTERED INDEX [IX_FEFormSection] ON [dbo].[FEFormSection] ([FormDefGUID]);
CREATE NONCLUSTERED INDEX [IX_FEFormSection_DisplayOrder] ON [dbo].[FEFormSection] ([DisplayOrder]);
GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [FK_FEFormSection_FEFormDef] FOREIGN KEY ([FormDefGUID]) REFERENCES [dbo].[FEFormDef] ([FORMDEFGUID]); GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_FORMSECTIONGUID] DEFAULT (newid()) FOR [FORMSECTIONGUID]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_DISPLAYORDER] DEFAULT ((1)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_DisplayChildrenAsTabs] DEFAULT ((0)) FOR [DisplayChildrenAsTabs]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_Height] DEFAULT ((0)) FOR [Height]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_Width] DEFAULT ((0)) FOR [Width]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_HTML] DEFAULT ('') FOR [HTML]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_HTMLDesign] DEFAULT ('') FOR [HTMLDesign]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_ISPARENTSECTION] DEFAULT ((0)) FOR [IsParentSection]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF__FEFormSec__IsAja__18260A72] DEFAULT ((0)) FOR [IsAjaxEnabled]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF__FEFormSec__Globa__1A40617C] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF__FEFormSec__Displ__1EBAFDD6] DEFAULT ((0)) FOR [DisplayMode]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_IsBreakVisible] DEFAULT ((1)) FOR [IsBreakVisible]; GO
ALTER TABLE [dbo].[FEFormSection] ADD CONSTRAINT [DF_FEFormSection_RuleGroupType] DEFAULT ((0)) FOR [RuleGroupType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormSectionRule ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormSectionRule] (
[FormSectionRuleGUID] uniqueidentifier NOT NULL,
[FormSectionGUID] uniqueidentifier NOT NULL,
[RuleXML] xml NOT NULL,
[Description] nvarchar(max) NOT NULL,
[RuleType] int NOT NULL,
PRIMARY KEY ([FormSectionRuleGUID])
);
GO
ALTER TABLE [dbo].[FEFormSectionRule] ADD CONSTRAINT [FK_FEFormSectionRule_FEFormSection] FOREIGN KEY ([FormSectionGUID]) REFERENCES [dbo].[FEFormSection] ([FORMSECTIONGUID]); GO
ALTER TABLE [dbo].[FEFormSectionRule] ADD CONSTRAINT [DF_FEFormSectionRule_FormSectionRuleGUID] DEFAULT (newid()) FOR [FormSectionRuleGUID]; GO
ALTER TABLE [dbo].[FEFormSectionRule] ADD CONSTRAINT [DF_FEFormSectionRule_FormSectionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormSectionGUID]; GO
ALTER TABLE [dbo].[FEFormSectionRule] ADD CONSTRAINT [DF_FEFormSectionRule_RuleXML] DEFAULT ('') FOR [RuleXML]; GO
ALTER TABLE [dbo].[FEFormSectionRule] ADD CONSTRAINT [DF_FEFormSectionRule_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[FEFormSectionRule] ADD CONSTRAINT [DF_FEFormSectionRule_RuleType] DEFAULT ((0)) FOR [RuleType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FEFormTemplateArea ------------------
---------------------------------------------
CREATE TABLE [dbo].[FEFormTemplateArea] (
[FormTemplateAreaGUID] uniqueidentifier NOT NULL,
[HTML] nvarchar(max) NOT NULL,
[AreaType] int NOT NULL,
PRIMARY KEY ([FormTemplateAreaGUID])
);
GO
ALTER TABLE [dbo].[FEFormTemplateArea] ADD CONSTRAINT [DF_FormTemplateArea_FormTemplateAreaGUID] DEFAULT (newid()) FOR [FormTemplateAreaGUID]; GO
ALTER TABLE [dbo].[FEFormTemplateArea] ADD CONSTRAINT [DF_FormTemplateArea_HTML] DEFAULT ('') FOR [HTML]; GO
ALTER TABLE [dbo].[FEFormTemplateArea] ADD CONSTRAINT [DF_FormTemplateArea_AreaType] DEFAULT ((0)) FOR [AreaType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FRDimension ------------------
---------------------------------------------
CREATE TABLE [dbo].[FRDimension] (
[FWDimensionGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NOT NULL,
PRIMARY KEY ([FWDimensionGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_FRDimension_Name] ON [dbo].[FRDimension] ([Name]);
GO
ALTER TABLE [dbo].[FRDimension] ADD CONSTRAINT [FK_FRDimension_ScoreDimension] FOREIGN KEY ([DimensionGUID]) REFERENCES [dbo].[ScoreDimension] ([DimensionGUID]); GO
ALTER TABLE [dbo].[FRDimension] ADD CONSTRAINT [DF__FRDimensi__FWDim__2703FAD9] DEFAULT (newid()) FOR [FWDimensionGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FRFinancialStatement ------------------
---------------------------------------------
CREATE TABLE [dbo].[FRFinancialStatement] (
[FinancialStatementGUID] uniqueidentifier NOT NULL,
[FWDimensionGUID] uniqueidentifier NOT NULL,
[Statement] nvarchar(200) NOT NULL,
[TemplateName] nvarchar(200) NOT NULL,
[ColumnFirstYear] nvarchar(200) NOT NULL,
[ColumnLastYear] nvarchar(200) NOT NULL,
[ColumnDisplayName] nvarchar(200) NOT NULL,
[ColumnFinancialReporting] nvarchar(200) NOT NULL,
[ColumnDataStructure] nvarchar(200) NOT NULL,
[ColumnReportingMappingType] nvarchar(200) NOT NULL,
[RowStartLabel] nvarchar(200) NOT NULL,
[RowEndLabel] nvarchar(200) NOT NULL,
[FinancialStatementSheet] nvarchar(200) NOT NULL,
[CompositeGUID] uniqueidentifier NOT NULL,
[ColumnAccountRollupLabel] nvarchar(200) NOT NULL,
[SampleViewName] nvarchar(200) NOT NULL,
[IsReportable] bit NOT NULL,
[TemplateGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[SortOrder] int NOT NULL,
PRIMARY KEY ([FinancialStatementGUID])
);
GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Finan__3A16CF4D] DEFAULT (newid()) FOR [FinancialStatementGUID]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Templ__3B0AF386] DEFAULT ('') FOR [TemplateName]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Colum__3BFF17BF] DEFAULT ('') FOR [ColumnFirstYear]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Colum__3CF33BF8] DEFAULT ('') FOR [ColumnLastYear]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Colum__3DE76031] DEFAULT ('') FOR [ColumnDisplayName]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Colum__3EDB846A] DEFAULT ('') FOR [ColumnFinancialReporting]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Colum__3FCFA8A3] DEFAULT ('') FOR [ColumnDataStructure]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Colum__40C3CCDC] DEFAULT ('') FOR [ColumnReportingMappingType]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__RowSt__41B7F115] DEFAULT ('') FOR [RowStartLabel]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__RowEn__42AC154E] DEFAULT ('') FOR [RowEndLabel]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF_FRFinancialStatement_TemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TemplateGUID]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Finan__43A03987] DEFAULT ('') FOR [FinancialStatementSheet]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Compo__467CA632] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CompositeGUID]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF_FRFinancialStatement_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__Colum__602834F3] DEFAULT ('') FOR [ColumnAccountRollupLabel]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF_FRFinancialStatement_SampleViewName] DEFAULT ('') FOR [SampleViewName]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF_FRFinancialStatement_IsReportable] DEFAULT ((1)) FOR [IsReportable]; GO
ALTER TABLE [dbo].[FRFinancialStatement] ADD CONSTRAINT [DF__FRFinanci__SortO__77FFBE84] DEFAULT ((0)) FOR [SortOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FRLineItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[FRLineItem] (
[LineItemGUID] uniqueidentifier NOT NULL,
[MemberGUID] uniqueidentifier NOT NULL,
[FWDimensionGUID] uniqueidentifier NOT NULL,
[SectionGUID] uniqueidentifier NOT NULL,
[LineName] nvarchar(200) NOT NULL,
[Name] nvarchar(200) NOT NULL,
[IsBold] bit NOT NULL,
[Indent] int NOT NULL,
[IsSpaceAbove] bit NOT NULL,
[Type] int NOT NULL,
[FinancialReportingID] int NOT NULL,
[Calculation] nvarchar(2000) NOT NULL,
[Statement] nvarchar(200) NOT NULL,
[SectionName] nvarchar(200) NOT NULL,
[SortOrder] int NOT NULL,
[Format] int NOT NULL,
[IsSR] bit NOT NULL,
[IsYearOverYear] bit NOT NULL,
[IsBalanceSheetOnly] bit NOT NULL,
[IsRequired] bit NOT NULL,
[IsVolume] bit NOT NULL,
[IsEditable] bit NOT NULL,
[IsBottomBorder] bit NOT NULL,
[IsFTERollup] bit NOT NULL,
[IsExpense] bit NOT NULL,
[DecimalCount] tinyint NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[IsDragAndDropAllowed] bit NOT NULL,
[IsDeletable] bit NOT NULL,
[IsConfigurable] bit NOT NULL,
[ToBeDeleted] bit NOT NULL,
PRIMARY KEY ([LineItemGUID])
);
GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsVol__0C06B731] DEFAULT ((0)) FOR [IsVolume]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsEdi__0CFADB6A] DEFAULT ((1)) FOR [IsEditable]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsCon__1C113521] DEFAULT ((1)) FOR [IsConfigurable]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsExp__225AAF0D] DEFAULT ((0)) FOR [IsExpense]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__ToBeD__239FAA55] DEFAULT ((0)) FOR [ToBeDeleted]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsFTE__2E46C09C] DEFAULT ((0)) FOR [IsFTERollup]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__LineI__3181894C] DEFAULT (newid()) FOR [LineItemGUID]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__Secti__3275AD85] DEFAULT (CONVERT([uniqueidentifier],CONVERT([binary],(0),0),0)) FOR [SectionGUID]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsBol__3369D1BE] DEFAULT ((0)) FOR [IsBold]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__Inden__345DF5F7] DEFAULT ((1)) FOR [Indent]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsSpa__35521A30] DEFAULT ((0)) FOR [IsSpaceAbove]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineItem__Type__36463E69] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__Calcu__373A62A2] DEFAULT ('') FOR [Calculation]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__Decim__43718A15] DEFAULT ((0)) FOR [DecimalCount]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsDra__51392A77] DEFAULT ((1)) FOR [IsDragAndDropAllowed]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsDel__522D4EB0] DEFAULT ((1)) FOR [IsDeletable]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF_FRLineItem_GlobalID] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineItem__IsSR__62107D65] DEFAULT ((0)) FOR [IsSR]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsYea__63F8C5D7] DEFAULT ((0)) FOR [IsYearOverYear]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsBal__64ECEA10] DEFAULT ((0)) FOR [IsBalanceSheetOnly]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsReq__65E10E49] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF__FRLineIte__IsBot__6DA22BA2] DEFAULT ((0)) FOR [IsBottomBorder]; GO
ALTER TABLE [dbo].[FRLineItem] ADD CONSTRAINT [DF_FRLineItem_Format] DEFAULT ((2)) FOR [Format]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FRSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[FRSection] (
[SectionGUID] uniqueidentifier NOT NULL,
[FWDimensionGUID] uniqueidentifier NOT NULL,
[Statement] nvarchar(200) NOT NULL,
[Name] nvarchar(200) NOT NULL,
[IsBold] bit NOT NULL,
[Indent] int NOT NULL,
[IsSpaceAbove] bit NOT NULL,
[IsVisible] bit NOT NULL,
[IsEditable] bit NOT NULL,
[IsRequired] bit NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[IsDragAndDropAllowed] bit NOT NULL,
[IsDeletable] bit NOT NULL,
[IsConfigurable] bit NOT NULL,
[ToBeDeleted] bit NOT NULL,
PRIMARY KEY ([SectionGUID])
);
GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__IsEdi__0DEEFFA3] DEFAULT ((1)) FOR [IsEditable]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__IsReq__0EE323DC] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__IsCon__1D05595A] DEFAULT ((1)) FOR [IsConfigurable]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__ToBeD__22AB861C] DEFAULT ((0)) FOR [ToBeDeleted]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__Secti__2AD48BBD] DEFAULT (newid()) FOR [SectionGUID]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__IsBol__2BC8AFF6] DEFAULT ((1)) FOR [IsBold]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__Inden__2CBCD42F] DEFAULT ((0)) FOR [Indent]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__IsSpa__2DB0F868] DEFAULT ((1)) FOR [IsSpaceAbove]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__IsVis__2EA51CA1] DEFAULT ((1)) FOR [IsVisible]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__IsDra__54159722] DEFAULT ((1)) FOR [IsDragAndDropAllowed]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__IsDel__5509BB5B] DEFAULT ((1)) FOR [IsDeletable]; GO
ALTER TABLE [dbo].[FRSection] ADD CONSTRAINT [DF__FRSection__Globa__576B33C5] DEFAULT ('') FOR [GlobalID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FRStatementFormula ------------------
---------------------------------------------
CREATE TABLE [dbo].[FRStatementFormula] (
[FinancialStatementGUID] uniqueidentifier NOT NULL,
[Column] nvarchar(5) NOT NULL,
[StandardFormula] nvarchar(max) NOT NULL,
[MappingFormula] nvarchar(max) NOT NULL,
[AlternateMappingFormula] nvarchar(max) NOT NULL,
[FormatOverride] int NOT NULL,
[UseStandardAlways] bit NOT NULL,
[DecimalCount] tinyint NOT NULL
);
GO
ALTER TABLE [dbo].[FRStatementFormula] ADD CONSTRAINT [DF__FRStateme__Colum__1EF36726] DEFAULT ('') FOR [Column]; GO
ALTER TABLE [dbo].[FRStatementFormula] ADD CONSTRAINT [DF__FRStateme__Stand__1FE78B5F] DEFAULT ('') FOR [StandardFormula]; GO
ALTER TABLE [dbo].[FRStatementFormula] ADD CONSTRAINT [DF__FRStateme__Mappi__20DBAF98] DEFAULT ('') FOR [MappingFormula]; GO
ALTER TABLE [dbo].[FRStatementFormula] ADD CONSTRAINT [DF__FRStateme__Alter__21CFD3D1] DEFAULT ('') FOR [AlternateMappingFormula]; GO
ALTER TABLE [dbo].[FRStatementFormula] ADD CONSTRAINT [DF__FRStateme__Forma__22C3F80A] DEFAULT ((-1)) FOR [FormatOverride]; GO
ALTER TABLE [dbo].[FRStatementFormula] ADD CONSTRAINT [DF__FRStateme__UseSt__2B0F2548] DEFAULT ((0)) FOR [UseStandardAlways]; GO
ALTER TABLE [dbo].[FRStatementFormula] ADD CONSTRAINT [DF__FRStateme__Decim__7469C72B] DEFAULT ((0)) FOR [DecimalCount]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FileAttachment ------------------
---------------------------------------------
CREATE TABLE [dbo].[FileAttachment] (
[FileAttachmentGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[EntityType] int NOT NULL,
[FileName] nvarchar(250) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[NumBytes] float NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[DateCreated] datetime NOT NULL,
[LastSeenpath] nvarchar(4000) NOT NULL,
[IsHome] bit NOT NULL,
PRIMARY KEY ([FileAttachmentGUID])
);
CREATE CLUSTERED INDEX [IX_FileAttachment_ByPlanGUID] ON [dbo].[FileAttachment] ([EntityGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_FileAttachment_Unique] ON [dbo].[FileAttachment] ([EntityGUID], [FolderGUID], [FileName]);
GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_FILEATTACHMENTGUID] DEFAULT (newid()) FOR [FileAttachmentGUID]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_PLANGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityGUID]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_ENTITYTYPE] DEFAULT ((0)) FOR [EntityType]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_FILENAME] DEFAULT ('') FOR [FileName]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_NUMBYTES] DEFAULT ((0)) FOR [NumBytes]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_FOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_DATECREATED] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_LASTSEENPATH] DEFAULT ('') FOR [LastSeenpath]; GO
ALTER TABLE [dbo].[FileAttachment] ADD CONSTRAINT [DF_FileAttachment_IsHome] DEFAULT ((0)) FOR [IsHome]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FileAttachmentPublicLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[FileAttachmentPublicLink] (
[FileAttachmentPublicLinkGUID] uniqueidentifier NOT NULL,
[FileAttachmentGUID] uniqueidentifier NOT NULL,
[AuthorGuid] uniqueidentifier NOT NULL,
[Description] nvarchar(200) NOT NULL,
[DateCreated] datetime NOT NULL,
[Link] nvarchar(2000) NOT NULL,
PRIMARY KEY ([FileAttachmentPublicLinkGUID])
);
GO
ALTER TABLE [dbo].[FileAttachmentPublicLink] ADD CONSTRAINT [FK__FileAttac__FileA__3AAA6746] FOREIGN KEY ([FileAttachmentGUID]) REFERENCES [dbo].[FileAttachment] ([FileAttachmentGUID]); GO
ALTER TABLE [dbo].[FileAttachmentPublicLink] ADD CONSTRAINT [DF__FileAttac__FileA__39B6430D] DEFAULT (newid()) FOR [FileAttachmentPublicLinkGUID]; GO
ALTER TABLE [dbo].[FileAttachmentPublicLink] ADD CONSTRAINT [DF__FileAttac__Autho__3B9E8B7F] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorGuid]; GO
ALTER TABLE [dbo].[FileAttachmentPublicLink] ADD CONSTRAINT [DF__FileAttac__Descr__3C92AFB8] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[FileAttachmentPublicLink] ADD CONSTRAINT [DF__FileAttac__DateC__3D86D3F1] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[FileAttachmentPublicLink] ADD CONSTRAINT [DF__FileAttach__Link__69304C05] DEFAULT ('') FOR [Link]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FileAttachmentPublicRequest ------------------
---------------------------------------------
CREATE TABLE [dbo].[FileAttachmentPublicRequest] (
[FileAttachmentPublicRequestGUID] uniqueidentifier NOT NULL,
[FileAttachmentPublicLinkGUID] uniqueidentifier NOT NULL,
[IPAddress] nvarchar(100) NOT NULL,
[DateCreated] datetime NOT NULL,
PRIMARY KEY ([FileAttachmentPublicRequestGUID])
);
GO
ALTER TABLE [dbo].[FileAttachmentPublicRequest] ADD CONSTRAINT [FK__FileAttac__FileA__415764D5] FOREIGN KEY ([FileAttachmentPublicLinkGUID]) REFERENCES [dbo].[FileAttachmentPublicLink] ([FileAttachmentPublicLinkGUID]); GO
ALTER TABLE [dbo].[FileAttachmentPublicRequest] ADD CONSTRAINT [DF__FileAttac__FileA__4063409C] DEFAULT (newid()) FOR [FileAttachmentPublicRequestGUID]; GO
ALTER TABLE [dbo].[FileAttachmentPublicRequest] ADD CONSTRAINT [DF__FileAttac__IPAdd__424B890E] DEFAULT ('') FOR [IPAddress]; GO
ALTER TABLE [dbo].[FileAttachmentPublicRequest] ADD CONSTRAINT [DF__FileAttac__DateC__433FAD47] DEFAULT (getdate()) FOR [DateCreated]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FileListener ------------------
---------------------------------------------
CREATE TABLE [dbo].[FileListener] (
[FileListenerGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[FileFilter] nvarchar(450) NOT NULL,
[ExecutionOrder] int NOT NULL,
[ActionGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([FileListenerGUID])
);
GO
ALTER TABLE [dbo].[FileListener] ADD CONSTRAINT [DF_FileListener_ExecutionOrder] DEFAULT ((0)) FOR [ExecutionOrder]; GO
ALTER TABLE [dbo].[FileListener] ADD CONSTRAINT [DF_FileListener_ActionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ActionGUID]; GO
ALTER TABLE [dbo].[FileListener] ADD CONSTRAINT [DF_FileListener_FileListenerGUID] DEFAULT (newid()) FOR [FileListenerGUID]; GO
ALTER TABLE [dbo].[FileListener] ADD CONSTRAINT [DF_FileListener_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[FileListener] ADD CONSTRAINT [DF_FileListener_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[FileListener] ADD CONSTRAINT [DF_FileListener_FileFilter] DEFAULT ('') FOR [FileFilter]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FillinMgmtUpdateHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[FillinMgmtUpdateHistory] (
[MemberGUID] uniqueidentifier NOT NULL,
[FillinUpdateTypeID] int NOT NULL,
[Departments] nvarchar(max) NOT NULL,
[FillinMembers] nvarchar(max) NOT NULL,
[Status] nvarchar(50) NOT NULL,
[TimeStamp] datetime NOT NULL,
[HistoryTaskGUID] uniqueidentifier NOT NULL,
[OperationType] nvarchar(50) NOT NULL,
[Sections] nvarchar(max) NOT NULL,
PRIMARY KEY ([MemberGUID])
);
GO
ALTER TABLE [dbo].[FillinMgmtUpdateHistory] ADD CONSTRAINT [DF_FillinMgmtUpdateHistory_Sections] DEFAULT ('') FOR [Sections]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateHistory] ADD CONSTRAINT [DF__FillinMgm__Opera__3E43BDC5] DEFAULT ('') FOR [OperationType]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateHistory] ADD CONSTRAINT [DF_FillinMgmtUpdateHistory_MemberGUID] DEFAULT (newid()) FOR [MemberGUID]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateHistory] ADD CONSTRAINT [DF_FillinMgmtUpdateHistory_FillinUpdateTypeID] DEFAULT ((0)) FOR [FillinUpdateTypeID]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateHistory] ADD CONSTRAINT [DF_FillinMgmtUpdateHistory_Departments] DEFAULT ('') FOR [Departments]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateHistory] ADD CONSTRAINT [DF_FillinMgmtUpdateHistory_FillinMembers] DEFAULT ('') FOR [FillinMembers]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateHistory] ADD CONSTRAINT [DF_FillinMgmtUpdateHistory_Status] DEFAULT ('') FOR [Status]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateHistory] ADD CONSTRAINT [DF_FillinMgmtUpdateHistory_TimeStamp] DEFAULT (getdate()) FOR [TimeStamp]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateHistory] ADD CONSTRAINT [DF_FillinMgmtUpdateHistory_HistoryTaskGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryTaskGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FillinMgmtUpdateType ------------------
---------------------------------------------
CREATE TABLE [dbo].[FillinMgmtUpdateType] (
[MemberGUID] uniqueidentifier NOT NULL,
[FillinUpdateTypeID] int NOT NULL,
[FillinUpdateTypeName] nvarchar(50) NOT NULL,
PRIMARY KEY ([MemberGUID])
);
GO
ALTER TABLE [dbo].[FillinMgmtUpdateType] ADD CONSTRAINT [DF_FillinMgmtUpdateType_MemberGUID] DEFAULT (newid()) FOR [MemberGUID]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateType] ADD CONSTRAINT [DF_FillinMgmtUpdateType_FillinUpdateTypeID] DEFAULT ((0)) FOR [FillinUpdateTypeID]; GO
ALTER TABLE [dbo].[FillinMgmtUpdateType] ADD CONSTRAINT [DF_FillinMgmtUpdateType_FillinUpdateTypeName] DEFAULT ('') FOR [FillinUpdateTypeName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FillinRefreshRequest ------------------
---------------------------------------------
CREATE TABLE [dbo].[FillinRefreshRequest] (
[RequestGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[PlaceHolderSectionGUID] uniqueidentifier NOT NULL,
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[IssuedAt] datetime NOT NULL,
[ErrorGUID] uniqueidentifier NOT NULL,
[PlanGUID] uniqueidentifier NOT NULL,
[AllowClearOnRefresh] bit NOT NULL,
PRIMARY KEY ([RequestGUID])
);
GO
ALTER TABLE [dbo].[FillinRefreshRequest] ADD CONSTRAINT [DF_FillinRefreshRequest_RequestGUID] DEFAULT (newid()) FOR [RequestGUID]; GO
ALTER TABLE [dbo].[FillinRefreshRequest] ADD CONSTRAINT [DF_FillinRefreshRequest_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[FillinRefreshRequest] ADD CONSTRAINT [DF_FillinRefreshRequest_PlaceHolderSectionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlaceHolderSectionGUID]; GO
ALTER TABLE [dbo].[FillinRefreshRequest] ADD CONSTRAINT [DF_FillinRefreshRequest_ModelTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelTemplateGUID]; GO
ALTER TABLE [dbo].[FillinRefreshRequest] ADD CONSTRAINT [DF_FillinRefreshRequest_IssuedAt] DEFAULT (getdate()) FOR [IssuedAt]; GO
ALTER TABLE [dbo].[FillinRefreshRequest] ADD CONSTRAINT [DF_FillinRefreshRequest_AllowClearOnRefresh] DEFAULT ((1)) FOR [AllowClearOnRefresh]; GO
ALTER TABLE [dbo].[FillinRefreshRequest] ADD CONSTRAINT [DF__FillinRef__Error__29293EDB] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ErrorGUID]; GO
ALTER TABLE [dbo].[FillinRefreshRequest] ADD CONSTRAINT [DF_FillinRefreshRequest_PlanGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.Folder ------------------
---------------------------------------------
CREATE TABLE [dbo].[Folder] (
[FolderGuid] uniqueidentifier NOT NULL,
[FolderSetGUID] uniqueidentifier NOT NULL,
[ParentFolderGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[DateCreated] datetime NOT NULL,
[DateModified] datetime NOT NULL,
[OutlineLevel] int NOT NULL,
[DisplayOrder] int NOT NULL,
[ImageType] int NOT NULL,
[FolderType] int NOT NULL,
[QueryRootXML] nvarchar(max) NOT NULL,
[IsDeletedFolder] bit NOT NULL,
[BasedOnFolderGUID] uniqueidentifier NOT NULL,
[UpgradeHierarchyPath] nvarchar(max) NOT NULL,
[GlobalID] nvarchar(50) NOT NULL,
PRIMARY KEY ([FolderGuid])
);
CREATE CLUSTERED INDEX [IX_Folder_FolderSetGUID] ON [dbo].[Folder] ([FolderSetGUID]);
CREATE NONCLUSTERED INDEX [IX_Folder_ParentFolderGUID] ON [dbo].[Folder] ([ParentFolderGUID]);
GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [FK_Folder_FolderSet] FOREIGN KEY ([FolderSetGUID]) REFERENCES [dbo].[FolderSet] ([FolderSetGUID]); GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_UpgradeHierarchyPath] DEFAULT ('') FOR [UpgradeHierarchyPath]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_GlobalID] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_FolderGUID] DEFAULT (newid()) FOR [FolderGuid]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_FOLDERSETGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderSetGUID]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_PARENTFOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentFolderGUID]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_DATECREATED] DEFAULT (((1)/(1))/(2000)) FOR [DateCreated]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_DATEMODIFIED] DEFAULT (((1)/(1))/(2000)) FOR [DateModified]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_OUTLINELEVEL] DEFAULT ((0)) FOR [OutlineLevel]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_DISPLAYORDER] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_IMAGEINDEX] DEFAULT ((0)) FOR [ImageType]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_FOLDERTYPE] DEFAULT ((0)) FOR [FolderType]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_QUERYROOTXML] DEFAULT ('') FOR [QueryRootXML]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_ISDELETEDFOLDER] DEFAULT ((0)) FOR [IsDeletedFolder]; GO
ALTER TABLE [dbo].[Folder] ADD CONSTRAINT [DF_Folder_BASEDONFOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [BasedOnFolderGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.FolderSet ------------------
---------------------------------------------
CREATE TABLE [dbo].[FolderSet] (
[FolderSetGUID] uniqueidentifier NOT NULL,
[RootFolderGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Type] int NOT NULL,
[OwnerGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([FolderSetGUID])
);
CREATE CLUSTERED INDEX [IX_FolderSet_Type] ON [dbo].[FolderSet] ([Type]);
GO
ALTER TABLE [dbo].[FolderSet] ADD CONSTRAINT [DF_FolderSet_FolderSetGUID] DEFAULT (newid()) FOR [FolderSetGUID]; GO
ALTER TABLE [dbo].[FolderSet] ADD CONSTRAINT [DF_FolderSet_ROOTFOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RootFolderGUID]; GO
ALTER TABLE [dbo].[FolderSet] ADD CONSTRAINT [DF_FolderSet_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[FolderSet] ADD CONSTRAINT [DF_FolderSet_OWNERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OwnerGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GUIDTable ------------------
---------------------------------------------
CREATE TABLE [dbo].[GUIDTable] (
[MemberGUID] uniqueidentifier NOT NULL,
[SPLongRangePlanID] int NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.GlobalAssumption ------------------
---------------------------------------------
CREATE TABLE [dbo].[GlobalAssumption] (
[GlobalAssumptionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[GlobalAssumptionSetGUID] uniqueidentifier NOT NULL,
[TimeClassID] tinyint NOT NULL,
[PlanFiltered] bit NOT NULL,
[AuthorGUID] uniqueidentifier NOT NULL,
[DateCreated] datetime NOT NULL,
[LastRefresh] datetime NULL,
[Commentary] nvarchar(max) NOT NULL,
[NumberOfBudgetsInRule] int NULL,
PRIMARY KEY ([GlobalAssumptionGUID])
);
GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [FK_GlobalAssumption_GlobalAssumptionSet] FOREIGN KEY ([GlobalAssumptionSetGUID]) REFERENCES [dbo].[GlobalAssumptionSet] ([GlobalAssumptionSetGUID]); GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [DF_GlobalAssumption_PlanFiltered] DEFAULT ((0)) FOR [PlanFiltered]; GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [DF__GlobalAss__Comme__00939FA1] DEFAULT ('') FOR [Commentary]; GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [DF_GlobalAssumption_AuthorGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorGUID]; GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [DF_GlobalAssumption_DateCreated] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [DF_GlobalAssumption_NumberOfBudgetsInRule] DEFAULT (NULL) FOR [NumberOfBudgetsInRule]; GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [DF_GlobalAssumption_GlobalAssumptionGUID] DEFAULT (newid()) FOR [GlobalAssumptionGUID]; GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [DF_GlobalAssumption_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [DF_GlobalAssumption_AssumptionSetGuid] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GlobalAssumptionSetGUID]; GO
ALTER TABLE [dbo].[GlobalAssumption] ADD CONSTRAINT [DF_GlobalAssumption_TimeClassID] DEFAULT ((0)) FOR [TimeClassID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GlobalAssumptionFillinKeep ------------------
---------------------------------------------
CREATE TABLE [dbo].[GlobalAssumptionFillinKeep] (
[RowID] int NOT NULL,
[GlobalAssumptionSetGUID] uniqueidentifier NOT NULL,
[DepartmentalBudgetGUID] uniqueidentifier NOT NULL,
[DepartmentalBudgetID] int NOT NULL,
[FillinGUID] uniqueidentifier NOT NULL,
[FillinID] int NOT NULL,
[FiscalMonthID] tinyint NOT NULL,
[FiscalMonthCode] nvarchar(20) NOT NULL,
[TimeClassID] tinyint NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[GlobalAssumptionFillinKeep] ADD CONSTRAINT [DF_GlobalAssumptionFillinKeep_GlobalAssumptionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GlobalAssumptionSetGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionFillinKeep] ADD CONSTRAINT [DF_GlobalAssumptionFillinKeep_DepartmentalBudgetGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DepartmentalBudgetGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionFillinKeep] ADD CONSTRAINT [DF_GlobalAssumptionFillinKeep_DepartmentalBudgetID] DEFAULT ((0)) FOR [DepartmentalBudgetID]; GO
ALTER TABLE [dbo].[GlobalAssumptionFillinKeep] ADD CONSTRAINT [DF_GlobalAssumptionFillinKeep_FillinGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FillinGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionFillinKeep] ADD CONSTRAINT [DF_GlobalAssumptionFillinKeep_FillinID] DEFAULT ((0)) FOR [FillinID]; GO
ALTER TABLE [dbo].[GlobalAssumptionFillinKeep] ADD CONSTRAINT [DF_GlobalAssumptionFillinKeep_FiscalMonthID] DEFAULT ((0)) FOR [FiscalMonthID]; GO
ALTER TABLE [dbo].[GlobalAssumptionFillinKeep] ADD CONSTRAINT [DF_GlobalAssumptionFillinKeep_FiscalMonthCode] DEFAULT ('0') FOR [FiscalMonthCode]; GO
ALTER TABLE [dbo].[GlobalAssumptionFillinKeep] ADD CONSTRAINT [DF_GlobalAssumptionFillinKeep_TimeClassID] DEFAULT ((0)) FOR [TimeClassID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GlobalAssumptionHistoryEntry ------------------
---------------------------------------------
CREATE TABLE [dbo].[GlobalAssumptionHistoryEntry] (
[HistoryEntryGUID] uniqueidentifier NOT NULL,
[GlobalAssumptionGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[DateTimeStamp] datetime NULL,
[AffectedPlansCount] int NOT NULL,
PRIMARY KEY ([HistoryEntryGUID])
);
GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntry] ADD CONSTRAINT [FK_GlobalAssumptionHistory_GlobalAssumption] FOREIGN KEY ([GlobalAssumptionGUID]) REFERENCES [dbo].[GlobalAssumption] ([GlobalAssumptionGUID]); GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntry] ADD CONSTRAINT [DF_GlobalAssumptionHistoryEntry_HistoryEntryGUID] DEFAULT (newid()) FOR [HistoryEntryGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntry] ADD CONSTRAINT [DF_GlobalAssumptionHistoryEntry_GlobalAssumptionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GlobalAssumptionGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntry] ADD CONSTRAINT [DF_GlobalAssumptionHistoryEntry_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntry] ADD CONSTRAINT [DF_GlobalAssumptionHistoryEntry_DateTimeStamp] DEFAULT (NULL) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntry] ADD CONSTRAINT [DF_GlobalAssumptionHistoryEntry_AffectedPlansCount] DEFAULT ((0)) FOR [AffectedPlansCount]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GlobalAssumptionHistoryEntryItems ------------------
---------------------------------------------
CREATE TABLE [dbo].[GlobalAssumptionHistoryEntryItems] (
[HistoryItemGUID] uniqueidentifier NOT NULL,
[HistoryEntryGUID] uniqueidentifier NOT NULL,
[PlanGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([HistoryItemGUID])
);
GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntryItems] ADD CONSTRAINT [FK_GlobalAssumptionHistoryEntryItems_GlobalAssumptionHistoryEntry] FOREIGN KEY ([HistoryEntryGUID]) REFERENCES [dbo].[GlobalAssumptionHistoryEntry] ([HistoryEntryGUID]); GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntryItems] ADD CONSTRAINT [DF_GlobalAssumptionHistoryEntryItems_HistoryItemGUID] DEFAULT (newid()) FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntryItems] ADD CONSTRAINT [DF_GlobalAssumptionHistoryEntryItems_HistoryEntryGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryEntryGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionHistoryEntryItems] ADD CONSTRAINT [DF_GlobalAssumptionHistoryEntryItems_PlanGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GlobalAssumptionPlanFilter ------------------
---------------------------------------------
CREATE TABLE [dbo].[GlobalAssumptionPlanFilter] (
[GlobalAssumptionPlanFilterGUID] uniqueidentifier NOT NULL,
[GlobalAssumptionGUID] uniqueidentifier NOT NULL,
[Value] nvarchar(256) NOT NULL,
PRIMARY KEY ([GlobalAssumptionPlanFilterGUID])
);
GO
ALTER TABLE [dbo].[GlobalAssumptionPlanFilter] ADD CONSTRAINT [FK_GlobalAssumptionPlanFilter_GlobalAssumption] FOREIGN KEY ([GlobalAssumptionGUID]) REFERENCES [dbo].[GlobalAssumption] ([GlobalAssumptionGUID]); GO
ALTER TABLE [dbo].[GlobalAssumptionPlanFilter] ADD CONSTRAINT [DF_GlobalAssumptionPlanFilter_GlobalAssumptionPlanFilterGUID] DEFAULT (newid()) FOR [GlobalAssumptionPlanFilterGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionPlanFilter] ADD CONSTRAINT [DF_GlobalAssumptionPlanFilter_GlobalAssumptionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GlobalAssumptionGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionPlanFilter] ADD CONSTRAINT [DF_GlobalAssumptionPlanFilter_Value] DEFAULT ('') FOR [Value]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GlobalAssumptionSet ------------------
---------------------------------------------
CREATE TABLE [dbo].[GlobalAssumptionSet] (
[GlobalAssumptionSetGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[PHSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Type] tinyint NOT NULL,
[ModelDataTableName] nvarchar(50) NOT NULL,
[RollupAssumptionsTableName] nvarchar(50) NOT NULL,
[DetailAssumptionsTableName] nvarchar(50) NOT NULL,
[Dimensionality] nvarchar(max) NOT NULL,
[IsPercentage] bit NOT NULL,
[SortOrder] int NOT NULL,
PRIMARY KEY ([GlobalAssumptionSetGUID])
);
GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_SortOrder] DEFAULT ((0)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_GlobalAssumptionSetGUID] DEFAULT (newid()) FOR [GlobalAssumptionSetGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_PHSectionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PHSectionGUID]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_Type] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_BaseTableName] DEFAULT ('') FOR [ModelDataTableName]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_GlobalAssumptionSetTableName] DEFAULT ('') FOR [RollupAssumptionsTableName]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_DetailAssumptionsTableName] DEFAULT ('') FOR [DetailAssumptionsTableName]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_Dimensionality] DEFAULT ('') FOR [Dimensionality]; GO
ALTER TABLE [dbo].[GlobalAssumptionSet] ADD CONSTRAINT [DF_GlobalAssumptionSet_IsPercentage] DEFAULT ((0)) FOR [IsPercentage]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GridColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[GridColumn] (
[GridColumnGUID] uniqueidentifier NOT NULL,
[GridTemplateGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[AttributeGUID] uniqueidentifier NOT NULL,
[SpecialColumnName] nvarchar(100) NOT NULL,
[Width] int NOT NULL,
[DisplayOrder] int NOT NULL,
[IsFrozen] bit NOT NULL,
[SortIndex] int NOT NULL,
[SortOrder] tinyint NOT NULL,
[TotalIndex] int NOT NULL,
PRIMARY KEY ([GridColumnGUID])
);
CREATE NONCLUSTERED INDEX [NUNC_AttributeGUID] ON [dbo].[GridColumn] ([AttributeGUID]);
CREATE NONCLUSTERED INDEX [NUNC_UserGUID] ON [dbo].[GridColumn] ([UserGUID]);
GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [FK__GridColum__GridT__5963C6C6] FOREIGN KEY ([GridTemplateGUID]) REFERENCES [dbo].[GridTemplate] ([GRIDTEMPLATEGUID]); GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__GridC__586FA28D] DEFAULT (newid()) FOR [GridColumnGUID]; GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__UserG__5A57EAFF] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__Speci__5C403371] DEFAULT ('') FOR [SpecialColumnName]; GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__Width__5D3457AA] DEFAULT ((150)) FOR [Width]; GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__Displ__5E287BE3] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__IsFro__5F1CA01C] DEFAULT ((0)) FOR [IsFrozen]; GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__SortI__6010C455] DEFAULT ((-1)) FOR [SortIndex]; GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__SortO__6104E88E] DEFAULT ((0)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__Total__699A2E8F] DEFAULT ((-1)) FOR [TotalIndex]; GO
ALTER TABLE [dbo].[GridColumn] ADD CONSTRAINT [DF__GridColum__Attri__5B4C0F38] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AttributeGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GridSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[GridSetting] (
[GRIDSETTINGGUID] uniqueidentifier NOT NULL,
[USERGUID] uniqueidentifier NOT NULL,
[COLUMNID] nvarchar(64) NOT NULL,
[WIDTH] float NOT NULL,
[DISPLAYORDER] int NOT NULL,
[ISFROZEN] bit NOT NULL,
[ISENABLED] bit NOT NULL,
[SORTINDEX] int NOT NULL,
[GRIDTEMPLATEGUID] uniqueidentifier NOT NULL,
[PLANTYPEGUID] uniqueidentifier NOT NULL,
[SORTORDER] int NOT NULL,
[ISAVAILABLE] bit NOT NULL,
[WorkspaceGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([GRIDSETTINGGUID])
);
CREATE CLUSTERED INDEX [IX_GridSetting_UserType] ON [dbo].[GridSetting] ([USERGUID], [PLANTYPEGUID]);
GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_ISAVAILABLE] DEFAULT ((1)) FOR [ISAVAILABLE]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_GRIDSETTINGGUID] DEFAULT (newid()) FOR [GRIDSETTINGGUID]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [USERGUID]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_COLUMNID] DEFAULT ('') FOR [COLUMNID]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_WIDTH] DEFAULT ((100)) FOR [WIDTH]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_WorkspaceGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkspaceGUID]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_DISPLAYORDER] DEFAULT ((-1)) FOR [DISPLAYORDER]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_FROZEN] DEFAULT ((0)) FOR [ISFROZEN]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_ISENABLED] DEFAULT ((1)) FOR [ISENABLED]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_SORTINDEX] DEFAULT ((-1)) FOR [SORTINDEX]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_SORTDIRECTION] DEFAULT ((0)) FOR [SORTORDER]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_GRIDTEMPLATEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GRIDTEMPLATEGUID]; GO
ALTER TABLE [dbo].[GridSetting] ADD CONSTRAINT [DF_GridSetting_PLANTYPEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PLANTYPEGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GridTemplate ------------------
---------------------------------------------
CREATE TABLE [dbo].[GridTemplate] (
[GRIDTEMPLATEGUID] uniqueidentifier NOT NULL,
[NAME] nvarchar(64) NOT NULL,
[DESCRIPTION] nvarchar(450) NOT NULL,
[ISDEFAULT] bit NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([GRIDTEMPLATEGUID])
);
GO
ALTER TABLE [dbo].[GridTemplate] ADD CONSTRAINT [DF__GridTempl__PlanT__61F90CC7] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[GridTemplate] ADD CONSTRAINT [DF_GridTemplate_GRIDTEMPLATEGUID] DEFAULT (newid()) FOR [GRIDTEMPLATEGUID]; GO
ALTER TABLE [dbo].[GridTemplate] ADD CONSTRAINT [DF_GridTemplate_NAME] DEFAULT ('') FOR [NAME]; GO
ALTER TABLE [dbo].[GridTemplate] ADD CONSTRAINT [DF_GridTemplate_DESCRIPTION] DEFAULT ('') FOR [DESCRIPTION]; GO
ALTER TABLE [dbo].[GridTemplate] ADD CONSTRAINT [DF_GridTemplate_ISDEFAULT] DEFAULT ((0)) FOR [ISDEFAULT]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GridTemplateFormFieldLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[GridTemplateFormFieldLink] (
[GRIDTEMPLATEFORMFIELDLINKGUID] uniqueidentifier NOT NULL,
[GRIDTEMPLATEGUID] uniqueidentifier NOT NULL,
[FORMFIELDGUID] uniqueidentifier NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([GRIDTEMPLATEFORMFIELDLINKGUID])
);
GO
ALTER TABLE [dbo].[GridTemplateFormFieldLink] ADD CONSTRAINT [FK_GridTemplateFormFieldLink_FEFormField] FOREIGN KEY ([FORMFIELDGUID]) REFERENCES [dbo].[FEFormField] ([FORMFIELDGUID]); GO
ALTER TABLE [dbo].[GridTemplateFormFieldLink] ADD CONSTRAINT [FK_GridTemplateFormFieldLink_GridTemplate] FOREIGN KEY ([GRIDTEMPLATEGUID]) REFERENCES [dbo].[GridTemplate] ([GRIDTEMPLATEGUID]); GO
ALTER TABLE [dbo].[GridTemplateFormFieldLink] ADD CONSTRAINT [DF__GridTempl__Displ__322DC4FD] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[GridTemplateFormFieldLink] ADD CONSTRAINT [DF_GridTemplateFormFieldLink_GRIDTEMPLATEFORMFIELDLINKGUID] DEFAULT (newid()) FOR [GRIDTEMPLATEFORMFIELDLINKGUID]; GO
ALTER TABLE [dbo].[GridTemplateFormFieldLink] ADD CONSTRAINT [DF_GridTemplateFormFieldLink_GRIDTEMPLATEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GRIDTEMPLATEGUID]; GO
ALTER TABLE [dbo].[GridTemplateFormFieldLink] ADD CONSTRAINT [DF_GridTemplateFormFieldLink_FORMFIELDGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FORMFIELDGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.GridTemplateUserLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[GridTemplateUserLink] (
[UserGUID] uniqueidentifier NOT NULL,
[EntityViewGUID] uniqueidentifier NOT NULL,
[GridTemplateGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([UserGUID], [EntityViewGUID])
);
GO
ALTER TABLE [dbo].[GridTemplateUserLink] ADD CONSTRAINT [FK__GridTempl__Entit__67B1E61D] FOREIGN KEY ([EntityViewGUID]) REFERENCES [dbo].[EntityView] ([ENTITYVIEWGUID]); GO
ALTER TABLE [dbo].[GridTemplateUserLink] ADD CONSTRAINT [FK__GridTempl__GridT__68A60A56] FOREIGN KEY ([GridTemplateGUID]) REFERENCES [dbo].[GridTemplate] ([GRIDTEMPLATEGUID]); GO
ALTER TABLE [dbo].[GridTemplateUserLink] ADD CONSTRAINT [FK__GridTempl__UserG__66BDC1E4] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.HangfireAuthenticationToken ------------------
---------------------------------------------
CREATE TABLE [dbo].[HangfireAuthenticationToken] (
[TokenGuid] uniqueidentifier NOT NULL,
[UserName] varchar(100) NOT NULL,
PRIMARY KEY ([TokenGuid])
);
GO
ALTER TABLE [dbo].[HangfireAuthenticationToken] ADD CONSTRAINT [DF__HangfireA__Token__42F82853] DEFAULT (newid()) FOR [TokenGuid]; GO
---------------------------------------------
---------------------------------------------
-- dbo.HangfireJobQueueOverride ------------------
---------------------------------------------
CREATE TABLE [dbo].[HangfireJobQueueOverride] (
[TypeName] varchar(250) NOT NULL,
[MethodName] varchar(100) NOT NULL,
[QueueName] varchar(100) NOT NULL
);
CREATE UNIQUE NONCLUSTERED INDEX [UC_HangfireJobQueueOverride_TypeName_MethodName] ON [dbo].[HangfireJobQueueOverride] ([TypeName], [MethodName]);
GO
ALTER TABLE [dbo].[HangfireJobQueueOverride] ADD CONSTRAINT [DF__HangfireJ__Queue__3F27976F] DEFAULT ('default') FOR [QueueName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.HistoryItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[HistoryItem] (
[HISTORYITEMGUID] uniqueidentifier NOT NULL,
[OBJECTGUID] uniqueidentifier NOT NULL,
[OBJECTTYPE] nvarchar(256) NOT NULL,
[DATETIMESTAMP] datetime NOT NULL,
[MODIFIERUSERGUID] uniqueidentifier NOT NULL,
[CATEGORY] nvarchar(64) NOT NULL,
[DESCRIPTION] nvarchar(4000) NOT NULL,
[USERCOMMENTS] nvarchar(256) NOT NULL,
[METAXML] xml NOT NULL,
[VERSION] timestamp NOT NULL,
[MODIFIERUSERNAME] nvarchar(256) NOT NULL,
[ITEMCOUNT] int NOT NULL,
[ELAPSEDMS] int NOT NULL,
[TransactionID] varchar(50) NULL,
[DATETIMESTAMPUTC] datetime NOT NULL,
PRIMARY KEY ([HISTORYITEMGUID])
);
CREATE NONCLUSTERED INDEX [IX_HistoryItem_DateTimeStamp] ON [dbo].[HistoryItem] ([DATETIMESTAMP], [VERSION]);
CREATE NONCLUSTERED INDEX [IDX_HistoryItem] ON [dbo].[HistoryItem] ([OBJECTGUID], [CATEGORY]);
CREATE NONCLUSTERED INDEX [IDX_HistoryItem_RunTime] ON [dbo].[HistoryItem] ([CATEGORY], [DATETIMESTAMP]) INCLUDE ([DESCRIPTION]);
GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_ITEMCOUNT] DEFAULT ((0)) FOR [ITEMCOUNT]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_HISTORYGUID] DEFAULT (newid()) FOR [HISTORYITEMGUID]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_OBJECTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OBJECTGUID]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_OBJECTTYPE] DEFAULT ('') FOR [OBJECTTYPE]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_DATETIMESTAMP] DEFAULT (getdate()) FOR [DATETIMESTAMP]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_MODIFIERUSERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MODIFIERUSERGUID]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_CATEGORY] DEFAULT ('') FOR [CATEGORY]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_DESCRIPTION] DEFAULT ('') FOR [DESCRIPTION]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF__HistoryIt__DATET__43F43DF2] DEFAULT (getutcdate()) FOR [DATETIMESTAMPUTC]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_USERCOMMENTS] DEFAULT ('') FOR [USERCOMMENTS]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_MODIFIERUSERNAME] DEFAULT ('') FOR [MODIFIERUSERNAME]; GO
ALTER TABLE [dbo].[HistoryItem] ADD CONSTRAINT [DF_HistoryItem_ELAPSEDMS] DEFAULT ((0)) FOR [ELAPSEDMS]; GO
---------------------------------------------
---------------------------------------------
-- dbo.HistoryItemBlankFactTable ------------------
---------------------------------------------
CREATE TABLE [dbo].[HistoryItemBlankFactTable] (
[HistoryItemGUID] uniqueidentifier NOT NULL,
[SourceFilePath] nvarchar(256) NOT NULL,
[ModelDataConfigGUID] uniqueidentifier NOT NULL,
[CubeStubGUID] uniqueidentifier NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.HistoryItemLine ------------------
---------------------------------------------
CREATE TABLE [dbo].[HistoryItemLine] (
[HistoryItemLineID] int NOT NULL,
[HistoryItemGUID] uniqueidentifier NULL,
[DateTimeStamp] datetime NOT NULL,
[SQLUser] nvarchar(128) NOT NULL,
[TableName] nvarchar(64) NOT NULL,
[RowID] int NULL,
[BeforeValues] nvarchar(max) NULL,
[AfterValues] nvarchar(max) NULL,
[DateTimeStampUtc] datetime NOT NULL,
PRIMARY KEY ([HistoryItemLineID])
);
GO
ALTER TABLE [dbo].[HistoryItemLine] ADD CONSTRAINT [DF_HistoryItemLine_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[HistoryItemLine] ADD CONSTRAINT [DF_HistoryItemLine_SQLUser] DEFAULT (suser_sname()) FOR [SQLUser]; GO
ALTER TABLE [dbo].[HistoryItemLine] ADD CONSTRAINT [DF__HistoryIt__DateT__44E8622B] DEFAULT (getutcdate()) FOR [DateTimeStampUtc]; GO
---------------------------------------------
---------------------------------------------
-- dbo.HistoryItemObject ------------------
---------------------------------------------
CREATE TABLE [dbo].[HistoryItemObject] (
[HistoryItemGUID] uniqueidentifier NOT NULL,
[ObjectGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([HistoryItemGUID], [ObjectGUID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.IPAddressWhiteList ------------------
---------------------------------------------
CREATE TABLE [dbo].[IPAddressWhiteList] (
[IPAddressRangeGUID] uniqueidentifier NOT NULL,
[IPAddressRangeStart] nvarchar(100) NOT NULL,
[IPAddressRangeEnd] nvarchar(100) NOT NULL,
PRIMARY KEY ([IPAddressRangeGUID])
);
GO
ALTER TABLE [dbo].[IPAddressWhiteList] ADD CONSTRAINT [DF__IPAddress__IPAdd__2CD47697] DEFAULT (newid()) FOR [IPAddressRangeGUID]; GO
ALTER TABLE [dbo].[IPAddressWhiteList] ADD CONSTRAINT [DF__IPAddress__IPAdd__2DC89AD0] DEFAULT ('') FOR [IPAddressRangeStart]; GO
ALTER TABLE [dbo].[IPAddressWhiteList] ADD CONSTRAINT [DF__IPAddress__IPAdd__2EBCBF09] DEFAULT ('') FOR [IPAddressRangeEnd]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IRCChat ------------------
---------------------------------------------
CREATE TABLE [dbo].[IRCChat] (
[IRCChatGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Description] varchar(802) NOT NULL,
[CreationTime] datetime NOT NULL,
[SQLTableName] nvarchar(128) NOT NULL,
[AuthorGUID] uniqueidentifier NOT NULL,
[LastModifiedUserGUID] uniqueidentifier NOT NULL,
[RowID] int NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[Version] timestamp NOT NULL,
[IsChatDeleted] bit NOT NULL,
PRIMARY KEY ([IRCChatGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [UQ__IRCChat__737584F6754087D1] ON [dbo].[IRCChat] ([Name]);
CREATE UNIQUE NONCLUSTERED INDEX [UQ__IRCChat__7CE2D9A872641B26] ON [dbo].[IRCChat] ([SQLTableName]);
GO
ALTER TABLE [dbo].[IRCChat] ADD CONSTRAINT [DF_IRCChat_AuthorGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorGUID]; GO
ALTER TABLE [dbo].[IRCChat] ADD CONSTRAINT [DF__IRCChat__IRCChat__7728D043] DEFAULT (newid()) FOR [IRCChatGUID]; GO
ALTER TABLE [dbo].[IRCChat] ADD CONSTRAINT [DF__IRCChat__Name__781CF47C] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[IRCChat] ADD CONSTRAINT [DF__IRCChat__Descrip__791118B5] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[IRCChat] ADD CONSTRAINT [DF__IRCChat__Creatio__7A053CEE] DEFAULT (getdate()) FOR [CreationTime]; GO
ALTER TABLE [dbo].[IRCChat] ADD CONSTRAINT [DF_IRCChat_LastModifiedUserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LastModifiedUserGUID]; GO
ALTER TABLE [dbo].[IRCChat] ADD CONSTRAINT [DF__IRCChat__SQLTabl__7AF96127] DEFAULT ('') FOR [SQLTableName]; GO
ALTER TABLE [dbo].[IRCChat] ADD CONSTRAINT [DF_IRCChat_HistoryItemGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[IRCChat] ADD CONSTRAINT [DF_IRCChat_IsDeleted] DEFAULT ((0)) FOR [IsChatDeleted]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IRCChatMembership ------------------
---------------------------------------------
CREATE TABLE [dbo].[IRCChatMembership] (
[UserGUID] uniqueidentifier NOT NULL,
[IRCChatGUID] uniqueidentifier NOT NULL,
[LastCheckinTime] datetime NOT NULL
);
CREATE CLUSTERED INDEX [CLUSTERED_LASTCHECKINTIME] ON [dbo].[IRCChatMembership] ([LastCheckinTime]);
CREATE UNIQUE NONCLUSTERED INDEX [NCU_USERGUID_CHATGUID] ON [dbo].[IRCChatMembership] ([UserGUID], [IRCChatGUID]);
GO
ALTER TABLE [dbo].[IRCChatMembership] ADD CONSTRAINT [DF__IRCChatMe__UserG__7CE1A999] DEFAULT (newid()) FOR [UserGUID]; GO
ALTER TABLE [dbo].[IRCChatMembership] ADD CONSTRAINT [DF__IRCChatMe__IRCCh__7DD5CDD2] DEFAULT (newid()) FOR [IRCChatGUID]; GO
ALTER TABLE [dbo].[IRCChatMembership] ADD CONSTRAINT [DF__IRCChatMe__Check__7EC9F20B] DEFAULT (getdate()) FOR [LastCheckinTime]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IdentityCompressionLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[IdentityCompressionLog] (
[runTime] datetime NOT NULL,
[schemaName] nvarchar(100) NOT NULL,
[tableName] nvarchar(100) NOT NULL,
[status] smallint NULL,
PRIMARY KEY ([runTime], [schemaName], [tableName])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ImportCSVConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[ImportCSVConfig] (
[ImportCSVConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[ConfigXML] xml NOT NULL,
[TimeoutSeconds] int NOT NULL,
PRIMARY KEY ([ImportCSVConfigGUID])
);
GO
ALTER TABLE [dbo].[ImportCSVConfig] ADD CONSTRAINT [DF_ImportCSVConfig_ImportCSVConfig] DEFAULT (newid()) FOR [ImportCSVConfigGUID]; GO
ALTER TABLE [dbo].[ImportCSVConfig] ADD CONSTRAINT [DF_ImportCSVConfig_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[ImportCSVConfig] ADD CONSTRAINT [DF_ImportCSVConfig_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ImportCSVConfig] ADD CONSTRAINT [DF_ImportCSVConfig_TimeoutSeconds] DEFAULT ((60)) FOR [TimeoutSeconds]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntCapERPConnectorConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntCapERPConnectorConfig] (
[ConnectorConfigGUID] uniqueidentifier NOT NULL,
[DataType] smallint NOT NULL,
[ServerAddress] varchar(255) NOT NULL,
[Port] int NOT NULL,
[UserName] nvarchar(255) NOT NULL,
[Password] nvarchar(4000) NOT NULL,
[IsSSL] bit NOT NULL,
[PollFrequency] int NOT NULL,
[EnvironmentType] tinyint NOT NULL,
[SystemType] smallint NOT NULL,
[AdditionalDataXML] xml NOT NULL,
PRIMARY KEY ([ConnectorConfigGUID])
);
GO
ALTER TABLE [dbo].[IntCapERPConnectorConfig] ADD CONSTRAINT [DF_IntCapERPSystemConfig_PollFrequency] DEFAULT ((900)) FOR [PollFrequency]; GO
ALTER TABLE [dbo].[IntCapERPConnectorConfig] ADD CONSTRAINT [DF_IntCapERPSystemConfig_EnvironmentType] DEFAULT ((0)) FOR [EnvironmentType]; GO
ALTER TABLE [dbo].[IntCapERPConnectorConfig] ADD CONSTRAINT [DF_IntCapERPSystemConfig_AdditionalDataXML] DEFAULT ('') FOR [AdditionalDataXML]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntCapERPFieldMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntCapERPFieldMapping] (
[FieldMappingGUID] uniqueidentifier NOT NULL,
[ConnectorConfigGUID] uniqueidentifier NOT NULL,
[ERPFieldName] nvarchar(4000) NOT NULL,
[Direction] smallint NOT NULL,
[JazzFieldGUID] uniqueidentifier NOT NULL,
[Filter] nvarchar(4000) NOT NULL,
[MappingType] smallint NOT NULL,
[JazzFieldValue] nvarchar(4000) NOT NULL,
[AttributeOverrideGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([FieldMappingGUID])
);
GO
ALTER TABLE [dbo].[IntCapERPFieldMapping] ADD CONSTRAINT [FK_IntCapERPFieldMapping_IntCapERPSystemConfig] FOREIGN KEY ([ConnectorConfigGUID]) REFERENCES [dbo].[IntCapERPConnectorConfig] ([ConnectorConfigGUID]); GO
ALTER TABLE [dbo].[IntCapERPFieldMapping] ADD CONSTRAINT [DF_IntCapERPFieldMapping_Direction] DEFAULT ((0)) FOR [Direction]; GO
ALTER TABLE [dbo].[IntCapERPFieldMapping] ADD CONSTRAINT [DF__IntCapERP__JazzF__4A1138A7] DEFAULT ('') FOR [JazzFieldValue]; GO
ALTER TABLE [dbo].[IntCapERPFieldMapping] ADD CONSTRAINT [DF__IntCapERP__JazzF__51DC77A1] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [JazzFieldGUID]; GO
ALTER TABLE [dbo].[IntCapERPFieldMapping] ADD CONSTRAINT [DF__IntCapERP__Filte__53C4C013] DEFAULT ('') FOR [Filter]; GO
ALTER TABLE [dbo].[IntCapERPFieldMapping] ADD CONSTRAINT [DF__IntCapERP__Mappi__54B8E44C] DEFAULT ((0)) FOR [MappingType]; GO
ALTER TABLE [dbo].[IntCapERPFieldMapping] ADD CONSTRAINT [DF__IntCapERP__Attri__5B3BC4A9] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AttributeOverrideGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntCapERPFieldMappingDefaults ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntCapERPFieldMappingDefaults] (
[FieldMappingGUID] uniqueidentifier NOT NULL,
[ERPFieldName] nvarchar(4000) NOT NULL,
[JazzFieldName] nvarchar(4000) NOT NULL,
[JazzFieldValue] nvarchar(4000) NOT NULL,
[Direction] smallint NOT NULL,
[MappingType] smallint NOT NULL,
[DataType] smallint NOT NULL,
[SystemType] smallint NOT NULL,
[SourceName] nvarchar(4000) NOT NULL,
[IsRequired] bit NOT NULL,
PRIMARY KEY ([FieldMappingGUID])
);
GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF_IntCapERPFieldMappingDefaults_ERPFieldName] DEFAULT ('') FOR [ERPFieldName]; GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF_IntCapERPFieldMappingDefaults_JazzFieldName] DEFAULT ('') FOR [JazzFieldName]; GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF_IntCapERPFieldMappingDefaults_JazzFieldValue] DEFAULT ('') FOR [JazzFieldValue]; GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF_IntCapERPFieldMappingDefaults_Direction] DEFAULT ((0)) FOR [Direction]; GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF_IntCapERPFieldMappingDefaults_MappingType] DEFAULT ((0)) FOR [MappingType]; GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF_IntCapERPFieldMappingDefaults_DataType] DEFAULT ((0)) FOR [DataType]; GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF_IntCapERPFieldMappingDefaults_SystemType] DEFAULT ((0)) FOR [SystemType]; GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF_IntCapERPFieldMappingDefaults_FieldMappingGUID] DEFAULT (newid()) FOR [FieldMappingGUID]; GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF__IntCapERP__Sourc__56770F8C] DEFAULT ('') FOR [SourceName]; GO
ALTER TABLE [dbo].[IntCapERPFieldMappingDefaults] ADD CONSTRAINT [DF__IntCapERP__IsReq__5A47A070] DEFAULT ((0)) FOR [IsRequired]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntConfig] (
[ConfigID] uniqueidentifier NOT NULL,
[AuthorGUID] uniqueidentifier NULL,
[Name] nvarchar(100) NOT NULL,
[IntegrationTypeVal] tinyint NOT NULL,
[DropDirectoryPath] varchar(max) NOT NULL,
[DesignerXML] varchar(max) NOT NULL,
[DataInterfaceID] uniqueidentifier NOT NULL,
[Summary] varchar(max) NOT NULL,
[IsHidden] bit NOT NULL,
[FrameworkID] tinyint NOT NULL,
[EmailLevelVal] tinyint NOT NULL,
[IsCompressed] bit NOT NULL,
[IsEncrypted] bit NOT NULL,
[CustomEmailAddress] nvarchar(2000) NOT NULL,
[IsRunOncePostAction] bit NOT NULL,
[LastRunAtUtc] datetime NOT NULL,
[CreatedAtUtc] datetime NOT NULL,
[ModifiedAtUtc] datetime NOT NULL,
PRIMARY KEY ([ConfigID])
);
GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__DropD__070736BF] DEFAULT ('') FOR [DropDirectoryPath]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__Email__19F11CEC] DEFAULT ((0)) FOR [EmailLevelVal]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__IsRun__1A0A5602] DEFAULT ((0)) FOR [IsRunOncePostAction]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__Desig__258BBDDF] DEFAULT ('') FOR [DesignerXML]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__Summa__2DB6EF8C] DEFAULT ('') FOR [Summary]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF_intConfig_CustomEmails] DEFAULT ('') FOR [CustomEmailAddress]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__Confi__31327AB5] DEFAULT (newid()) FOR [ConfigID]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__Autho__32269EEE] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorGUID]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__Name__331AC327] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__Integ__340EE760] DEFAULT ('0') FOR [IntegrationTypeVal]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__IsCom__3A9EE0C1] DEFAULT ((0)) FOR [IsCompressed]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__IsEnc__3B9304FA] DEFAULT ((0)) FOR [IsEncrypted]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__LastR__3C531C2A] DEFAULT (getutcdate()) FOR [LastRunAtUtc]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__Creat__3D474063] DEFAULT (getutcdate()) FOR [CreatedAtUtc]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__Modif__3E3B649C] DEFAULT (getutcdate()) FOR [ModifiedAtUtc]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__DataI__4B7C5C9D] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataInterfaceID]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF__IntConfig__IsHid__5B20298E] DEFAULT ('0') FOR [IsHidden]; GO
ALTER TABLE [dbo].[IntConfig] ADD CONSTRAINT [DF_IntConfig_FrameworkID] DEFAULT ((0)) FOR [FrameworkID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntConfigFramework ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntConfigFramework] (
[ConfigID] uniqueidentifier NOT NULL,
[FrameworkID] tinyint NOT NULL,
PRIMARY KEY ([ConfigID], [FrameworkID])
);
GO
ALTER TABLE [dbo].[IntConfigFramework] ADD CONSTRAINT [FK_IntConfigFramework_IntConfig] FOREIGN KEY ([ConfigID]) REFERENCES [dbo].[IntConfig] ([ConfigID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.IntConfigResponse ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntConfigResponse] (
[ConfigResponseID] uniqueidentifier NOT NULL,
[ConfigID] uniqueidentifier NOT NULL,
[ProcessStateVal] int NOT NULL,
[ResponseTypeVal] int NOT NULL,
PRIMARY KEY ([ConfigResponseID])
);
CREATE UNIQUE NONCLUSTERED INDEX [UQ__IntConfi__EC4B467370ADE14C] ON [dbo].[IntConfigResponse] ([ConfigID], [ProcessStateVal], [ResponseTypeVal]);
GO
ALTER TABLE [dbo].[IntConfigResponse] ADD CONSTRAINT [FK__IntConfig__Confi__7666BAA2] FOREIGN KEY ([ConfigID]) REFERENCES [dbo].[IntConfig] ([ConfigID]); GO
ALTER TABLE [dbo].[IntConfigResponse] ADD CONSTRAINT [DF__IntConfig__Confi__729629BE] DEFAULT (newid()) FOR [ConfigResponseID]; GO
ALTER TABLE [dbo].[IntConfigResponse] ADD CONSTRAINT [DF__IntConfig__Proce__747E7230] DEFAULT ((0)) FOR [ProcessStateVal]; GO
ALTER TABLE [dbo].[IntConfigResponse] ADD CONSTRAINT [DF__IntConfig__Respo__75729669] DEFAULT ((0)) FOR [ResponseTypeVal]; GO
ALTER TABLE [dbo].[IntConfigResponse] ADD CONSTRAINT [DF__IntConfig__Confi__738A4DF7] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ConfigID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntConfigSchedule ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntConfigSchedule] (
[ConfigScheduleID] uniqueidentifier NOT NULL,
[ConfigID] uniqueidentifier NOT NULL,
[Name] nvarchar(128) NOT NULL,
[TaskName] nvarchar(128) NOT NULL,
[Description] varchar(max) NOT NULL,
[IsEnabled] bit NOT NULL,
[IsExpiring] bit NOT NULL,
[ExpirationDate] datetime NOT NULL,
[StartTime] datetime NOT NULL,
[SchedulePeriodVal] int NOT NULL,
[RecurRate] int NOT NULL,
[DaysOfWeekVal] int NOT NULL,
[MonthsOfYearVal] int NOT NULL,
[Days] nvarchar(83) NOT NULL,
[OrderIndex] int NOT NULL,
[DropDirectory] nvarchar(max) NOT NULL,
[ArchiveDirectory] nvarchar(max) NOT NULL,
[ScheduledTaskGuid] uniqueidentifier NOT NULL,
[IsStopImport] bit NOT NULL,
[PreviousConfigGUID] uniqueidentifier NULL,
PRIMARY KEY ([ConfigScheduleID])
);
GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [FK__IntConfig__Confi__6388F058] FOREIGN KEY ([ConfigID]) REFERENCES [dbo].[IntConfig] ([ConfigID]); GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__DropD__23647B6C] DEFAULT ('') FOR [DropDirectory]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__IsSto__35FA2735] DEFAULT ((0)) FOR [IsStopImport]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Archi__49F69AAD] DEFAULT ('') FOR [ArchiveDirectory]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Confi__6294CC1F] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ConfigID]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Order__5E5A26E7] DEFAULT ((0)) FOR [OrderIndex]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Confi__61A0A7E6] DEFAULT (newid()) FOR [ConfigScheduleID]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfigS__Name__647D1491] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__TaskN__657138CA] DEFAULT ('') FOR [TaskName]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Descr__66655D03] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__IsEna__6759813C] DEFAULT ((0)) FOR [IsEnabled]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__IsExp__684DA575] DEFAULT ((0)) FOR [IsExpiring]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Expir__6941C9AE] DEFAULT (getdate()) FOR [ExpirationDate]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Start__6A35EDE7] DEFAULT (getdate()) FOR [StartTime]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Sched__6B2A1220] DEFAULT ((0)) FOR [SchedulePeriodVal]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Recur__6C1E3659] DEFAULT ((0)) FOR [RecurRate]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__DaysO__6D125A92] DEFAULT ((0)) FOR [DaysOfWeekVal]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Month__6E067ECB] DEFAULT ((0)) FOR [MonthsOfYearVal]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfigS__Days__6EFAA304] DEFAULT ('') FOR [Days]; GO
ALTER TABLE [dbo].[IntConfigSchedule] ADD CONSTRAINT [DF__IntConfig__Sched__7862133C] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScheduledTaskGuid]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntConfigUserGroupNotification ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntConfigUserGroupNotification] (
[GroupNotificationGUID] uniqueidentifier NOT NULL,
[ConfigID] uniqueidentifier NOT NULL,
[UserGroupGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([GroupNotificationGUID])
);
GO
ALTER TABLE [dbo].[IntConfigUserGroupNotification] ADD CONSTRAINT [FK_IntConfigUserGroupNotification_UserGroupGUID] FOREIGN KEY ([UserGroupGUID]) REFERENCES [dbo].[UserGroup] ([UserGroupGUID]); GO
ALTER TABLE [dbo].[IntConfigUserGroupNotification] ADD CONSTRAINT [DF__IntConfig__Confi__2DC4D3E7] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ConfigID]; GO
ALTER TABLE [dbo].[IntConfigUserGroupNotification] ADD CONSTRAINT [DF_IntConfigUserGroupNotification_GroupNotificationGUID] DEFAULT (newid()) FOR [GroupNotificationGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntDataInterface ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntDataInterface] (
[DataInterfaceID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(max) NOT NULL,
[DescriptionXAML] varchar(max) NOT NULL,
[IntegrationTypeVal] tinyint NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
PRIMARY KEY ([DataInterfaceID])
);
GO
ALTER TABLE [dbo].[IntDataInterface] ADD CONSTRAINT [DF_IntDataInterface_GlobalID] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[IntDataInterface] ADD CONSTRAINT [DF__IntDataIn__DataI__29274499] DEFAULT (newid()) FOR [DataInterfaceID]; GO
ALTER TABLE [dbo].[IntDataInterface] ADD CONSTRAINT [DF__IntDataIn__Descr__2ADA82E1] DEFAULT ('') FOR [DescriptionXAML]; GO
ALTER TABLE [dbo].[IntDataInterface] ADD CONSTRAINT [DF__IntDataInt__Name__2B0F8D0B] DEFAULT ('''') FOR [Name]; GO
ALTER TABLE [dbo].[IntDataInterface] ADD CONSTRAINT [DF__IntDataIn__Descr__4D64A50F] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[IntDataInterface] ADD CONSTRAINT [DF__IntDataIn__Integ__56B9051F] DEFAULT ('0') FOR [IntegrationTypeVal]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntDataInterfaceField ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntDataInterfaceField] (
[DataInterfaceFieldID] uniqueidentifier NOT NULL,
[DataInterfaceSectionID] uniqueidentifier NOT NULL,
[ScoreKeyGUID] uniqueidentifier NOT NULL,
[OrderIndex] smallint NOT NULL,
[IsRequired] bit NOT NULL,
[FieldName] nvarchar(100) NOT NULL,
[ColumnTypeVal] tinyint NOT NULL,
[MaxLength] smallint NOT NULL,
[Precision] tinyint NOT NULL,
[Scale] tinyint NOT NULL,
[IsMeasure] bit NOT NULL,
[IsKey] bit NOT NULL,
[GivenScoreAttributeGUID] uniqueidentifier NOT NULL,
[IsAllowingCreate] bit NOT NULL,
[ImportName] nvarchar(200) NOT NULL,
[IsHidden] bit NOT NULL,
[IsForeignKey] bit NOT NULL,
[Description] varchar(max) NOT NULL,
[IsScoreRequired] bit NOT NULL,
[isReplaceKey] bit NOT NULL,
PRIMARY KEY ([DataInterfaceFieldID])
);
GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [FK__IntDataIn__DataI__38698829] FOREIGN KEY ([DataInterfaceSectionID]) REFERENCES [dbo].[IntDataInterfaceSection] ([DataInterfaceSectionID]); GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__isRep__0C811614] DEFAULT ((0)) FOR [isReplaceKey]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__IsHid__13F71D89] DEFAULT ((0)) FOR [IsHidden]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__IsFor__14EB41C2] DEFAULT ((0)) FOR [IsForeignKey]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__Order__3A51D09B] DEFAULT ('0') FOR [OrderIndex]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__Descr__2615CDC4] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__IsSco__3562FE4C] DEFAULT ('0') FOR [IsScoreRequired]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__DataI__377563F0] DEFAULT (newid()) FOR [DataInterfaceFieldID]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__Score__395DAC62] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScoreKeyGUID]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__IsReq__3B45F4D4] DEFAULT ('0') FOR [IsRequired]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__Field__3C3A190D] DEFAULT ('''') FOR [FieldName]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__Colum__3D2E3D46] DEFAULT ('0') FOR [ColumnTypeVal]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__MaxLe__3F1685B8] DEFAULT ('0') FOR [MaxLength]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__Preci__400AA9F1] DEFAULT ('0') FOR [Precision]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__Scale__40FECE2A] DEFAULT ('0') FOR [Scale]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__IsMea__42E7169C] DEFAULT ((0)) FOR [IsMeasure]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__IsKey__4F4CED81] DEFAULT ('0') FOR [IsKey]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__Given__504111BA] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GivenScoreAttributeGUID]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__IsAll__616B9DBC] DEFAULT ((0)) FOR [IsAllowingCreate]; GO
ALTER TABLE [dbo].[IntDataInterfaceField] ADD CONSTRAINT [DF__IntDataIn__Impor__784F0314] DEFAULT ('') FOR [ImportName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntDataInterfaceMap ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntDataInterfaceMap] (
[DataInterfaceMapID] uniqueidentifier NOT NULL,
[SourceColumnID] uniqueidentifier NOT NULL,
[DataInterfaceFieldID] uniqueidentifier NOT NULL,
PRIMARY KEY ([DataInterfaceMapID])
);
GO
ALTER TABLE [dbo].[IntDataInterfaceMap] ADD CONSTRAINT [FK__IntDataIn__DataI__4994142B] FOREIGN KEY ([DataInterfaceFieldID]) REFERENCES [dbo].[IntDataInterfaceField] ([DataInterfaceFieldID]); GO
ALTER TABLE [dbo].[IntDataInterfaceMap] ADD CONSTRAINT [FK__IntDataIn__Sourc__489FEFF2] FOREIGN KEY ([SourceColumnID]) REFERENCES [dbo].[IntSourceField] ([SourceColumnID]); GO
ALTER TABLE [dbo].[IntDataInterfaceMap] ADD CONSTRAINT [DF__IntDataIn__DataI__47ABCBB9] DEFAULT (newid()) FOR [DataInterfaceMapID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntDataInterfaceSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntDataInterfaceSection] (
[DataInterfaceSectionID] uniqueidentifier NOT NULL,
[DataInterfaceID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[SectionTypeVal] tinyint NOT NULL,
[ScoreGUID] uniqueidentifier NOT NULL,
[Description] nvarchar(max) NOT NULL,
[SampleTypeVal] tinyint NOT NULL,
[ScriptGUID] uniqueidentifier NOT NULL,
[OrderIndex] tinyint NOT NULL,
[TableName] nvarchar(200) NULL,
[IsSummary] bit NOT NULL,
[MergeTypeVal] tinyint NOT NULL,
[AllowColumnPassthrough] bit NOT NULL,
[IsDisabled] bit NOT NULL,
PRIMARY KEY ([DataInterfaceSectionID])
);
GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [FK__IntDataIn__DataI__30C86661] FOREIGN KEY ([DataInterfaceID]) REFERENCES [dbo].[IntDataInterface] ([DataInterfaceID]); GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__IsDis__01F5D0E1] DEFAULT ((0)) FOR [IsDisabled]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__Order__15DF65FB] DEFAULT ('0') FOR [OrderIndex]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__Merge__2E5D3419] DEFAULT ('0') FOR [MergeTypeVal]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__DataI__2FD44228] DEFAULT (newid()) FOR [DataInterfaceSectionID]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataInt__Name__31BC8A9A] DEFAULT ('''') FOR [Name]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__Secti__32B0AED3] DEFAULT ('0') FOR [SectionTypeVal]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__Score__4C7080D6] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScoreGUID]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__Descr__4E58C948] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__Table__50961775] DEFAULT ('') FOR [TableName]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__Allow__5D240D1B] DEFAULT ((0)) FOR [AllowColumnPassthrough]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__Sampl__5F83554A] DEFAULT ((1)) FOR [SampleTypeVal]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__Scrip__60777983] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScriptGUID]; GO
ALTER TABLE [dbo].[IntDataInterfaceSection] ADD CONSTRAINT [DF__IntDataIn__IsSum__7DF2CDD1] DEFAULT ('0') FOR [IsSummary]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntDataInterfaceSync ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntDataInterfaceSync] (
[DataInterfaceID] uniqueidentifier NOT NULL,
[DataInterfaceSectionID] uniqueidentifier NOT NULL
);
GO
ALTER TABLE [dbo].[IntDataInterfaceSync] ADD CONSTRAINT [DF__IntDataIn__DataI__5F1E9A5E] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataInterfaceID]; GO
ALTER TABLE [dbo].[IntDataInterfaceSync] ADD CONSTRAINT [DF__IntDataIn__DataI__6012BE97] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataInterfaceSectionID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntDataInterfaceSyncLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntDataInterfaceSyncLog] (
[LogGUID] uniqueidentifier NOT NULL,
[DataInterfaceID] uniqueidentifier NOT NULL,
[DataInterfaceSectionID] uniqueidentifier NOT NULL,
[Description] varchar(max) NOT NULL,
[TimeStampUtc] datetime NOT NULL,
PRIMARY KEY ([LogGUID])
);
GO
ALTER TABLE [dbo].[IntDataInterfaceSyncLog] ADD CONSTRAINT [DF__IntDataIn__TimeS__3F2F88D5] DEFAULT (getutcdate()) FOR [TimeStampUtc]; GO
ALTER TABLE [dbo].[IntDataInterfaceSyncLog] ADD CONSTRAINT [DF__IntDataIn__LogGU__62EF2B42] DEFAULT (newid()) FOR [LogGUID]; GO
ALTER TABLE [dbo].[IntDataInterfaceSyncLog] ADD CONSTRAINT [DF__IntDataIn__DataI__63E34F7B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataInterfaceID]; GO
ALTER TABLE [dbo].[IntDataInterfaceSyncLog] ADD CONSTRAINT [DF__IntDataIn__DataI__64D773B4] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataInterfaceSectionID]; GO
ALTER TABLE [dbo].[IntDataInterfaceSyncLog] ADD CONSTRAINT [DF__IntDataIn__Descr__65CB97ED] DEFAULT ('') FOR [Description]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntDataSetType ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntDataSetType] (
[DataSetTypeID] uniqueidentifier NOT NULL,
[DataSetType] varchar(128) NOT NULL,
[SortOrder] tinyint NOT NULL,
PRIMARY KEY ([DataSetTypeID])
);
GO
ALTER TABLE [dbo].[IntDataSetType] ADD CONSTRAINT [DF__IntDataSe__DataS__5F3B6893] DEFAULT (newid()) FOR [DataSetTypeID]; GO
ALTER TABLE [dbo].[IntDataSetType] ADD CONSTRAINT [DF__IntDataSe__DataS__602F8CCC] DEFAULT ('') FOR [DataSetType]; GO
ALTER TABLE [dbo].[IntDataSetType] ADD CONSTRAINT [DF_IntDataSetType_SortOrder] DEFAULT ((0)) FOR [SortOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntNotification ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntNotification] (
[NotificationID] uniqueidentifier NOT NULL,
[DatabaseName] varchar(200) NOT NULL,
[TransactionGUID] uniqueidentifier NOT NULL,
[ErrorMessage] varchar(1000) NOT NULL,
[ErrorGUID] varchar(50) NOT NULL,
[LastPostAction] varchar(200) NOT NULL,
PRIMARY KEY ([NotificationID])
);
GO
ALTER TABLE [dbo].[IntNotification] ADD CONSTRAINT [DF__IntNotifi__Notif__4ECFF6A0] DEFAULT (newid()) FOR [NotificationID]; GO
ALTER TABLE [dbo].[IntNotification] ADD CONSTRAINT [DF__IntNotifi__Datab__4FC41AD9] DEFAULT ('') FOR [DatabaseName]; GO
ALTER TABLE [dbo].[IntNotification] ADD CONSTRAINT [DF__IntNotifi__Error__50B83F12] DEFAULT ('') FOR [ErrorMessage]; GO
ALTER TABLE [dbo].[IntNotification] ADD CONSTRAINT [DF__IntNotifi__Error__51AC634B] DEFAULT ('') FOR [ErrorGUID]; GO
ALTER TABLE [dbo].[IntNotification] ADD CONSTRAINT [DF__IntNotifi__LastP__52A08784] DEFAULT ('') FOR [LastPostAction]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntPostAction ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntPostAction] (
[PostActionID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[PostActionXML] nvarchar(max) NOT NULL,
[PostActionTypeVal] tinyint NOT NULL,
[SeqOrder] tinyint NOT NULL,
[ActionGUID] uniqueidentifier NOT NULL,
[ConfigID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PostActionID])
);
GO
ALTER TABLE [dbo].[IntPostAction] ADD CONSTRAINT [DF__IntPostAc__Actio__5E8F3111] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ActionGUID]; GO
ALTER TABLE [dbo].[IntPostAction] ADD CONSTRAINT [DF__IntPostAc__Confi__60426F59] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ConfigID]; GO
ALTER TABLE [dbo].[IntPostAction] ADD CONSTRAINT [DF__IntPostAc__PostA__5A349048] DEFAULT (newid()) FOR [PostActionID]; GO
ALTER TABLE [dbo].[IntPostAction] ADD CONSTRAINT [DF__IntPostAct__Name__5C1CD8BA] DEFAULT ('''') FOR [Name]; GO
ALTER TABLE [dbo].[IntPostAction] ADD CONSTRAINT [DF__IntPostAc__PostA__5D10FCF3] DEFAULT ('''') FOR [PostActionXML]; GO
ALTER TABLE [dbo].[IntPostAction] ADD CONSTRAINT [DF__IntPostAc__PostA__5E05212C] DEFAULT ('0') FOR [PostActionTypeVal]; GO
ALTER TABLE [dbo].[IntPostAction] ADD CONSTRAINT [DF__IntPostAc__SeqOr__5EF94565] DEFAULT ('0') FOR [SeqOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntSourceField ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntSourceField] (
[SourceColumnID] uniqueidentifier NOT NULL,
[DataSourceID] uniqueidentifier NOT NULL,
[ColumnName] nvarchar(128) NOT NULL,
[IsKey] bit NOT NULL,
[ColumnTypeVal] tinyint NOT NULL,
[MaxLength] smallint NOT NULL,
[Precision] tinyint NOT NULL,
[Scale] tinyint NOT NULL,
[OrderIndex] int NOT NULL,
[IsMeasure] bit NOT NULL,
[FixedCharacterWidth] int NOT NULL,
[ColumnAffinityVal] tinyint NOT NULL,
[FixedStartIndex] int NOT NULL,
[IsTrimEnabled] bit NOT NULL,
[SequenceCode] nvarchar(20) NOT NULL,
[RecordNumber] nvarchar(20) NOT NULL,
[ClientField] varchar(1000) NOT NULL,
PRIMARY KEY ([SourceColumnID])
);
GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Sourc__014E5D69] DEFAULT (newid()) FOR [SourceColumnID]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Colum__0336A5DB] DEFAULT ('''') FOR [ColumnName]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__IsKey__042ACA14] DEFAULT ('0') FOR [IsKey]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Colum__051EEE4D] DEFAULT ('0') FOR [ColumnTypeVal]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF_IntSourceColumn_MaxLength] DEFAULT ((0)) FOR [MaxLength]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF_IntSourceColumn_Precision] DEFAULT ((0)) FOR [Precision]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF_IntSourceColumn_Scale] DEFAULT ((0)) FOR [Scale]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Recor__0B8CF1DB] DEFAULT ('') FOR [RecordNumber]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Clien__0BBC36AB] DEFAULT ('') FOR [ClientField]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Order__1DEA9C17] DEFAULT ((0)) FOR [OrderIndex]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__IsMea__3992B68C] DEFAULT ((0)) FOR [IsMeasure]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Seque__3D96ECB6] DEFAULT ('') FOR [SequenceCode]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Fixed__4A532E3A] DEFAULT ((0)) FOR [FixedStartIndex]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Fixed__525E6456] DEFAULT ((-1)) FOR [FixedCharacterWidth]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__IsTri__599571CA] DEFAULT ((0)) FOR [IsTrimEnabled]; GO
ALTER TABLE [dbo].[IntSourceField] ADD CONSTRAINT [DF__IntSource__Colum__5D9B0CD8] DEFAULT ((0)) FOR [ColumnAffinityVal]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntSourceFile ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntSourceFile] (
[SourceFileID] uniqueidentifier NOT NULL,
[ConfigID] uniqueidentifier NOT NULL,
[ExpectedFileName] nvarchar(1024) NOT NULL,
[OrderIndex] int NOT NULL,
[SourceFileTypeVal] tinyint NOT NULL,
[ConfigXML] varchar(max) NOT NULL,
[Name] nvarchar(128) NOT NULL,
[IsRepeatable] bit NOT NULL,
[MatchModeVal] tinyint NOT NULL,
[PartialMatchString] varchar(800) NOT NULL,
[AutoSkipLineCount] int NOT NULL,
[SourceSystem] nvarchar(500) NOT NULL,
PRIMARY KEY ([SourceFileID])
);
GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [FK__IntSource__Confi__77C4F32F] FOREIGN KEY ([ConfigID]) REFERENCES [dbo].[IntConfig] ([ConfigID]); GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSourceF__Name__1F9DDA5F] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__Order__267FE218] DEFAULT ((0)) FOR [OrderIndex]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__IsRep__29E65EA8] DEFAULT ((0)) FOR [IsRepeatable]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__Match__2BCEA71A] DEFAULT ((0)) FOR [MatchModeVal]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__Parti__2CC2CB53] DEFAULT ('') FOR [PartialMatchString]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__Sourc__516A401D] DEFAULT ((0)) FOR [SourceFileTypeVal]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__Confi__5352888F] DEFAULT ('') FOR [ConfigXML]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__Sourc__541F86F9] DEFAULT ('') FOR [SourceSystem]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__AutoS__5A899603] DEFAULT ((0)) FOR [AutoSkipLineCount]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__Sourc__76D0CEF6] DEFAULT (newid()) FOR [SourceFileID]; GO
ALTER TABLE [dbo].[IntSourceFile] ADD CONSTRAINT [DF__IntSource__Expec__78B91768] DEFAULT ('') FOR [ExpectedFileName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntSourceFileLocation ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntSourceFileLocation] (
[UserGUID] uniqueidentifier NOT NULL,
[SourceFileID] uniqueidentifier NOT NULL,
[LastFullPathSeen] varchar(800) NOT NULL,
PRIMARY KEY ([UserGUID], [SourceFileID])
);
GO
ALTER TABLE [dbo].[IntSourceFileLocation] ADD CONSTRAINT [FK_IntSourceFileLocation_IntSourceFile] FOREIGN KEY ([SourceFileID]) REFERENCES [dbo].[IntSourceFile] ([SourceFileID]); GO
ALTER TABLE [dbo].[IntSourceFileLocation] ADD CONSTRAINT [FK_IntSourceFileLocation_UserProfile] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[IntSourceFileLocation] ADD CONSTRAINT [DF__IntSource__LastF__22AF5134] DEFAULT ('') FOR [LastFullPathSeen]; GO
ALTER TABLE [dbo].[IntSourceFileLocation] ADD CONSTRAINT [DF__IntSource__UserG__20C708C2] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[IntSourceFileLocation] ADD CONSTRAINT [DF__IntSource__Sourc__21BB2CFB] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SourceFileID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntSourceSystemDetail ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntSourceSystemDetail] (
[SourceSystemDetailID] uniqueidentifier NOT NULL,
[DataSetSource] varchar(128) NOT NULL,
[SourceID] varchar(128) NOT NULL,
[Notes] varchar(1000) NOT NULL,
[DataSetTypeID] uniqueidentifier NOT NULL,
[IsCustom] bit NOT NULL,
PRIMARY KEY ([SourceSystemDetailID])
);
GO
ALTER TABLE [dbo].[IntSourceSystemDetail] ADD CONSTRAINT [FK__IntSource__DataS__66DC8A5B] FOREIGN KEY ([DataSetTypeID]) REFERENCES [dbo].[IntDataSetType] ([DataSetTypeID]); GO
ALTER TABLE [dbo].[IntSourceSystemDetail] ADD CONSTRAINT [DF__IntSource__IsCus__594D8513] DEFAULT ((0)) FOR [IsCustom]; GO
ALTER TABLE [dbo].[IntSourceSystemDetail] ADD CONSTRAINT [DF__IntSource__Sourc__630BF977] DEFAULT (newid()) FOR [SourceSystemDetailID]; GO
ALTER TABLE [dbo].[IntSourceSystemDetail] ADD CONSTRAINT [DF__IntSource__DataS__64001DB0] DEFAULT ('') FOR [DataSetSource]; GO
ALTER TABLE [dbo].[IntSourceSystemDetail] ADD CONSTRAINT [DF__IntSource__Sourc__64F441E9] DEFAULT ('') FOR [SourceID]; GO
ALTER TABLE [dbo].[IntSourceSystemDetail] ADD CONSTRAINT [DF__IntSource__Notes__65E86622] DEFAULT ('') FOR [Notes]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntTransaction ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntTransaction] (
[TransactionGUID] uniqueidentifier NOT NULL,
[ConfigID] uniqueidentifier NOT NULL,
[UserID] uniqueidentifier NOT NULL,
[IsSuccess] bit NOT NULL,
[HasCompleted] bit NOT NULL,
[FileCheckSum] varchar(8000) NOT NULL,
[HasStarted] bit NOT NULL,
[ProcessStateVal] tinyint NOT NULL,
[LocationVal] tinyint NOT NULL,
[Comment] nvarchar(400) NOT NULL,
[Files] nvarchar(max) NOT NULL,
[IsManualEntry] bit NOT NULL,
[CanDelete] bit NOT NULL,
[TransactionID] int NOT NULL,
[ProcessStateFailedValue] tinyint NOT NULL,
[PostActionDuration] int NOT NULL,
[EndTimeUtc] datetime NOT NULL,
[StartTimeUtc] datetime NOT NULL,
PRIMARY KEY ([TransactionGUID])
);
CREATE NONCLUSTERED INDEX [NC_IntTransaction_ConfigIDWithCheckSum] ON [dbo].[IntTransaction] ([ConfigID]) INCLUDE ([FileCheckSum]);
GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__Trans__1AEC313B] DEFAULT (newid()) FOR [TransactionGUID]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__Confi__1BE05574] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ConfigID]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__UserI__1CD479AD] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserID]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__IsSuc__1DC89DE6] DEFAULT ((0)) FOR [IsSuccess]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__HasCo__1EBCC21F] DEFAULT ((0)) FOR [HasCompleted]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__FileC__1FB0E658] DEFAULT ('') FOR [FileCheckSum]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__HasSt__20A50A91] DEFAULT ((0)) FOR [HasStarted]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__Proce__21992ECA] DEFAULT ((0)) FOR [ProcessStateVal]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__Locat__228D5303] DEFAULT ((0)) FOR [LocationVal]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__Comme__2381773C] DEFAULT ('') FOR [Comment]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__Files__24759B75] DEFAULT ('') FOR [Files]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__IsMan__2569BFAE] DEFAULT ((0)) FOR [IsManualEntry]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__CanDe__265DE3E7] DEFAULT ((0)) FOR [CanDelete]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__Proce__27520820] DEFAULT ((0)) FOR [ProcessStateFailedValue]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__PostA__28462C59] DEFAULT ((0)) FOR [PostActionDuration]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__EndTi__293A5092] DEFAULT (getutcdate()) FOR [EndTimeUtc]; GO
ALTER TABLE [dbo].[IntTransaction] ADD CONSTRAINT [DF__IntTransa__Start__2A2E74CB] DEFAULT (getutcdate()) FOR [StartTimeUtc]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntTransactionData ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntTransactionData] (
[TransactionDataID] uniqueidentifier NOT NULL,
[TransactionGUID] uniqueidentifier NOT NULL,
[DataInterfaceSectionID] uniqueidentifier NOT NULL,
[RowsImported] int NOT NULL,
[CanDelete] bit NOT NULL,
[IsImportDeleted] bit NOT NULL,
[TransactionID] int NOT NULL,
[RowsRejected] int NOT NULL,
[TotalRows] int NOT NULL,
[Files] varchar(max) NOT NULL,
[FileSize] bigint NOT NULL,
[HasDummyFile] bit NOT NULL,
[IsAdhocImport] bit NOT NULL,
PRIMARY KEY ([TransactionDataID])
);
CREATE CLUSTERED INDEX [IX_TransactionGUID] ON [dbo].[IntTransactionData] ([TransactionGUID]);
GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__Trans__2A1178FB] DEFAULT ((0)) FOR [TransactionID]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__Total__34BBEA39] DEFAULT ((0)) FOR [TotalRows]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__IsAdh__3E0987CE] DEFAULT ((0)) FOR [IsAdhocImport]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__RowsR__3ED8570E] DEFAULT ((0)) FOR [RowsRejected]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__FileS__4F50E205] DEFAULT ((0)) FOR [FileSize]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__Files__526C48B1] DEFAULT ('') FOR [Files]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__Trans__5FEC04BA] DEFAULT (newid()) FOR [TransactionDataID]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__Trans__60E028F3] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TransactionGUID]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__DataI__61D44D2C] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataInterfaceSectionID]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__RowsI__62C87165] DEFAULT ((0)) FOR [RowsImported]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__CanDe__63BC959E] DEFAULT ((1)) FOR [CanDelete]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__IsImp__64B0B9D7] DEFAULT ((0)) FOR [IsImportDeleted]; GO
ALTER TABLE [dbo].[IntTransactionData] ADD CONSTRAINT [DF__IntTransa__HasDu__78A03DB7] DEFAULT ((0)) FOR [HasDummyFile]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntTransformation ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntTransformation] (
[TransformationID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[TransformXML] nvarchar(max) NULL,
[TransformationTypeVal] tinyint NOT NULL,
[TransformationLocationVal] tinyint NOT NULL,
[SeqOrder] tinyint NOT NULL,
[Description] varchar(2000) NOT NULL,
[Level] int NOT NULL,
[ConfigID] uniqueidentifier NOT NULL,
[IsCopied] bit NOT NULL,
PRIMARY KEY ([TransformationID])
);
GO
ALTER TABLE [dbo].[IntTransformation] ADD CONSTRAINT [DF_IntTransformation_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[IntTransformation] ADD CONSTRAINT [DF__IntTransf__IsCop__272CE4F1] DEFAULT ((0)) FOR [IsCopied]; GO
ALTER TABLE [dbo].[IntTransformation] ADD CONSTRAINT [DF__IntTransf__Trans__4721BBD4] DEFAULT (newid()) FOR [TransformationID]; GO
ALTER TABLE [dbo].[IntTransformation] ADD CONSTRAINT [DF__IntTransfo__Name__490A0446] DEFAULT ('''') FOR [Name]; GO
ALTER TABLE [dbo].[IntTransformation] ADD CONSTRAINT [DF__IntTransf__Trans__49FE287F] DEFAULT ('0') FOR [TransformationTypeVal]; GO
ALTER TABLE [dbo].[IntTransformation] ADD CONSTRAINT [DF__IntTransf__Level__4A883864] DEFAULT ((-1)) FOR [Level]; GO
ALTER TABLE [dbo].[IntTransformation] ADD CONSTRAINT [DF__IntTransf__Trans__4AF24CB8] DEFAULT ('0') FOR [TransformationLocationVal]; GO
ALTER TABLE [dbo].[IntTransformation] ADD CONSTRAINT [DF__IntTransf__SeqOr__4BE670F1] DEFAULT ('0') FOR [SeqOrder]; GO
ALTER TABLE [dbo].[IntTransformation] ADD CONSTRAINT [DF__IntTransf__Confi__61369392] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ConfigID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.IntTransformationLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[IntTransformationLink] (
[TargetDataSourceID] uniqueidentifier NOT NULL,
[SourceDataSourceID] uniqueidentifier NOT NULL,
PRIMARY KEY ([TargetDataSourceID], [SourceDataSourceID])
);
GO
ALTER TABLE [dbo].[IntTransformationLink] ADD CONSTRAINT [DF__IntTransf__DataS__1AD92542] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TargetDataSourceID]; GO
ALTER TABLE [dbo].[IntTransformationLink] ADD CONSTRAINT [DF__IntTransf__Paren__1BCD497B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SourceDataSourceID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.LastSecurityCheck ------------------
---------------------------------------------
CREATE TABLE [dbo].[LastSecurityCheck] (
[UserGUID] uniqueidentifier NOT NULL,
[Checksum] int NULL,
[EmailAddress] nvarchar(450) NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.Lock ------------------
---------------------------------------------
CREATE TABLE [dbo].[Lock] (
[LockGUID] uniqueidentifier NOT NULL,
[ItemGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[DateLocked] datetime NOT NULL,
[LockGroup] nvarchar(64) NOT NULL,
[DateLastActive] datetime NOT NULL,
[UserName] nvarchar(256) NOT NULL,
[DateLockedUtc] datetime NOT NULL,
[DateLastActiveUtc] datetime NOT NULL
);
GO
ALTER TABLE [dbo].[Lock] ADD CONSTRAINT [DF_Lock_LOCKGUID] DEFAULT (newid()) FOR [LockGUID]; GO
ALTER TABLE [dbo].[Lock] ADD CONSTRAINT [DF_Lock_ITEMGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ItemGUID]; GO
ALTER TABLE [dbo].[Lock] ADD CONSTRAINT [DF_Lock_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[Lock] ADD CONSTRAINT [DF_Lock_DATELOCKED] DEFAULT (getdate()) FOR [DateLocked]; GO
ALTER TABLE [dbo].[Lock] ADD CONSTRAINT [DF_Lock_LOCKGROUP] DEFAULT ('') FOR [LockGroup]; GO
ALTER TABLE [dbo].[Lock] ADD CONSTRAINT [DF_Lock_DATELASTACTIVE] DEFAULT (getdate()) FOR [DateLastActive]; GO
ALTER TABLE [dbo].[Lock] ADD CONSTRAINT [DF__Lock__DateLocked__3976AF7F] DEFAULT (getutcdate()) FOR [DateLockedUtc]; GO
ALTER TABLE [dbo].[Lock] ADD CONSTRAINT [DF__Lock__DateLastAc__3A6AD3B8] DEFAULT (getutcdate()) FOR [DateLastActiveUtc]; GO
ALTER TABLE [dbo].[Lock] ADD CONSTRAINT [DF_Lock_UserName] DEFAULT ('') FOR [UserName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.LoginHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[LoginHistory] (
[TokenGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[LoginStamp] datetime NOT NULL,
[LastActionStamp] datetime NULL,
[LogoutStamp] datetime NULL,
[UserName] nvarchar(64) NOT NULL,
[IPAddress] nvarchar(100) NULL,
PRIMARY KEY ([TokenGUID])
);
GO
ALTER TABLE [dbo].[LoginHistory] ADD CONSTRAINT [DF_LoginHistory_UserName] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[LoginHistory] ADD CONSTRAINT [DF_dbo.LoginHistory_TOKENGUID] DEFAULT (newid()) FOR [TokenGUID]; GO
ALTER TABLE [dbo].[LoginHistory] ADD CONSTRAINT [DF_LoginHistory_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[LoginHistory] ADD CONSTRAINT [DF_dbo.LoginHistory_LOGINSTAMP] DEFAULT (getdate()) FOR [LoginStamp]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MECacheInvalidateLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[MECacheInvalidateLog] (
[RowID] int NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[Source] nvarchar(100) NOT NULL,
[DateTimeStamp] datetime NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[MECacheInvalidateLog] ADD CONSTRAINT [DF_MECacheInvalidateLog_Source] DEFAULT ('') FOR [Source]; GO
ALTER TABLE [dbo].[MECacheInvalidateLog] ADD CONSTRAINT [DF_MECacheInvalidateLog_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[MECacheInvalidateLog] ADD CONSTRAINT [DF_MECacheInvalidateLog_ModelGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEExcelCell ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEExcelCell] (
[ExcelCellGUID] uniqueidentifier NOT NULL,
[ExcelSheetGUID] uniqueidentifier NOT NULL,
[Row] int NOT NULL,
[Row2] int NOT NULL,
[Col] int NOT NULL,
[MappingFormula] nvarchar(max) NOT NULL,
[DefaultFormula] nvarchar(max) NOT NULL,
[TestDataFormula] nvarchar(max) NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[IsReadFromDB] bit NOT NULL,
[IsWrittenToDB] bit NOT NULL,
[IsLocked] bit NOT NULL,
[IsAssumptionInput] bit NOT NULL,
[IsAssumptionOutput] bit NOT NULL,
[IsWrittenIfZero] bit NOT NULL,
[IsAssumptionDriver] bit NOT NULL,
PRIMARY KEY ([ExcelCellGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_ModelLoad] ON [dbo].[MEExcelCell] ([IsReadFromDB], [ExcelSheetGUID], [ExcelCellGUID], [Col], [IsLocked], [IsAssumptionInput], [IsAssumptionOutput]) INCLUDE ([DefaultFormula]);
CREATE NONCLUSTERED INDEX [IX_IsWrittenToDB] ON [dbo].[MEExcelCell] ([IsWrittenToDB]) INCLUDE ([ExcelCellGUID], [ExcelSheetGUID], [Col]);
CREATE NONCLUSTERED INDEX [IDX_MEExcelCell] ON [dbo].[MEExcelCell] ([ExcelSheetGUID]);
GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [FK_MEExcelCell_EMFModelTemplateWorksheet] FOREIGN KEY ([ExcelSheetGUID]) REFERENCES [dbo].[EMFModelTemplateWorksheet] ([WorksheetGUID]); GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_TestDataFormula] DEFAULT ('') FOR [TestDataFormula]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_CompositeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataSourceGUID]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_IsReadFromDB] DEFAULT ((0)) FOR [IsReadFromDB]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_IsWrittenToDB] DEFAULT ((0)) FOR [IsWrittenToDB]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_IsLocked] DEFAULT ((0)) FOR [IsLocked]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_IsAssumptionInput] DEFAULT ((0)) FOR [IsAssumptionInput]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_IsAssumptionOutput] DEFAULT ((0)) FOR [IsAssumptionOutput]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_IsWrittenIfZero] DEFAULT ((0)) FOR [IsWrittenIfZero]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MFExcelCell_ExcelCellGUID] DEFAULT (newid()) FOR [ExcelCellGUID]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_Row2] DEFAULT ((0)) FOR [Row2]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_MappingFormula] DEFAULT ('') FOR [MappingFormula]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_DefaultFormula] DEFAULT ('') FOR [DefaultFormula]; GO
ALTER TABLE [dbo].[MEExcelCell] ADD CONSTRAINT [DF_MEExcelCell_IsAssumptionDriver] DEFAULT ((0)) FOR [IsAssumptionDriver]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEFillinTemplate ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEFillinTemplate] (
[FillinTemplateGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(400) NOT NULL,
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[IsDefault] bit NOT NULL,
PRIMARY KEY ([FillinTemplateGUID])
);
GO
ALTER TABLE [dbo].[MEFillinTemplate] ADD CONSTRAINT [FK_MEFillinTemplate_EMFModelTemplate] FOREIGN KEY ([ModelTemplateGUID]) REFERENCES [dbo].[EMFModelTemplate] ([ModelTemplateGUID]); GO
ALTER TABLE [dbo].[MEFillinTemplate] ADD CONSTRAINT [DF__FillinTem__Filli__36CAF0B7] DEFAULT (newid()) FOR [FillinTemplateGUID]; GO
ALTER TABLE [dbo].[MEFillinTemplate] ADD CONSTRAINT [DF__FillinTemp__Name__37BF14F0] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[MEFillinTemplate] ADD CONSTRAINT [DF__FillinTem__Model__38B33929] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelTemplateGUID]; GO
ALTER TABLE [dbo].[MEFillinTemplate] ADD CONSTRAINT [DF_MEFillinTemplate_IsDefault] DEFAULT ((0)) FOR [IsDefault]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEImprovData ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEImprovData] (
[ImprovDataGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[WorksheetGUID] uniqueidentifier NOT NULL,
[Row] int NOT NULL,
[Col] int NOT NULL,
[Formula] nvarchar(4000) NOT NULL,
[CellValue] nvarchar(4000) NOT NULL,
[OriginalComment] nvarchar(4000) NOT NULL,
PRIMARY KEY ([ImprovDataGUID])
);
CREATE UNIQUE CLUSTERED INDEX [IX_MEImprovData] ON [dbo].[MEImprovData] ([ModelGUID], [WorksheetGUID], [Row], [Col]);
GO
ALTER TABLE [dbo].[MEImprovData] ADD CONSTRAINT [FK_MEImprovData_MEImprovData] FOREIGN KEY ([ImprovDataGUID]) REFERENCES [dbo].[MEImprovData] ([ImprovDataGUID]); GO
ALTER TABLE [dbo].[MEImprovData] ADD CONSTRAINT [DF_MEImprovData_OriginalStyleName] DEFAULT ('') FOR [OriginalComment]; GO
ALTER TABLE [dbo].[MEImprovData] ADD CONSTRAINT [DF_MEImprovData_RowGUID] DEFAULT (newsequentialid()) FOR [ImprovDataGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEModelRefreshQueue ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEModelRefreshQueue] (
[ModelGUID] uniqueidentifier NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[ErrorLogGUID] uniqueidentifier NOT NULL,
[UserName] nvarchar(64) NOT NULL,
[Source] nvarchar(100) NOT NULL,
[CompositeGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ModelGUID])
);
GO
ALTER TABLE [dbo].[MEModelRefreshQueue] ADD CONSTRAINT [DF_MEModelRefreshQueue_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[MEModelRefreshQueue] ADD CONSTRAINT [DF_MEModelRefreshQueue_ModelGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
ALTER TABLE [dbo].[MEModelRefreshQueue] ADD CONSTRAINT [DF_MEModelRefreshQueue_Source] DEFAULT ('') FOR [Source]; GO
ALTER TABLE [dbo].[MEModelRefreshQueue] ADD CONSTRAINT [DF__MEModelRe__UserN__5C2FE8E2] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[MEModelRefreshQueue] ADD CONSTRAINT [DF_MEModelRefreshQueue_ErrorLogGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ErrorLogGUID]; GO
ALTER TABLE [dbo].[MEModelRefreshQueue] ADD CONSTRAINT [DF_MEModelRefreshQueue_CompositeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CompositeGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEPHSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEPHSection] (
[PHSectionGUID] uniqueidentifier NOT NULL,
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[PHSectionDimensionGUID] uniqueidentifier NOT NULL,
[PHSectionMemberGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[FriendlyName] nvarchar(100) NOT NULL,
[SortType] int NOT NULL,
[IsConstantIndex] bit NOT NULL,
[RootHierarchyPath] nvarchar(max) NOT NULL,
[DefaultHierarchyPath] nvarchar(max) NOT NULL,
[IsAppend] bit NOT NULL,
[IsHidden] bit NOT NULL,
[IsReadOnly] bit NOT NULL,
[IsExclusive] bit NOT NULL,
[RuleType] smallint NOT NULL,
[IsOneTime] bit NOT NULL,
[IsClearOnRefresh] bit NOT NULL,
[ExclusivityGroup] nvarchar(100) NOT NULL,
[IsOrderByName] bit NOT NULL,
[IsOrderByNameSkippingCode] bit NOT NULL,
PRIMARY KEY ([PHSectionGUID])
);
GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [FK_MEPHSectionConfig_EMFModelTemplate] FOREIGN KEY ([ModelTemplateGUID]) REFERENCES [dbo].[EMFModelTemplate] ([ModelTemplateGUID]); GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSectionConfig_IsReadOnly] DEFAULT ((0)) FOR [IsReadOnly]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSection_IsExclusive] DEFAULT ((0)) FOR [IsExclusive]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF__MEPHSecti__Exclu__0282DC58] DEFAULT ('') FOR [ExclusivityGroup]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSection_RuleType] DEFAULT ((0)) FOR [RuleType]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSection_IsOrderByNameSkippingCode] DEFAULT ((0)) FOR [IsOrderByNameSkippingCode]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSection_IsOrderByName] DEFAULT ((0)) FOR [IsOrderByName]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF__MEPHSecti__IsCle__3CD0AC98] DEFAULT ((0)) FOR [IsClearOnRefresh]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSection_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF__MEPHSecti__IsOne__77E6856E] DEFAULT ((0)) FOR [IsOneTime]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSectionConfig_PHSectionConfigGUID] DEFAULT (newid()) FOR [PHSectionGUID]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSectionConfig_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSectionConfig_IsAutoSort] DEFAULT ((0)) FOR [SortType]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSectionConfig_IsConstantIndex] DEFAULT ((0)) FOR [IsConstantIndex]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSectionConfig_RootHierarchyPath] DEFAULT ('') FOR [RootHierarchyPath]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSectionConfig_DefaultHierarchyPath] DEFAULT ('') FOR [DefaultHierarchyPath]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSection_IsAppend] DEFAULT ((0)) FOR [IsAppend]; GO
ALTER TABLE [dbo].[MEPHSection] ADD CONSTRAINT [DF_MEPHSectionConfig_IsHidden] DEFAULT ((0)) FOR [IsHidden]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEPHSectionDataTableLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEPHSectionDataTableLink] (
[PHSectionConfigGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PHSectionConfigGUID], [DataTableGUID])
);
GO
ALTER TABLE [dbo].[MEPHSectionDataTableLink] ADD CONSTRAINT [FK_MEPHSectionDataTableLink_MEPHSectionConfig] FOREIGN KEY ([PHSectionConfigGUID]) REFERENCES [dbo].[MEPHSection] ([PHSectionGUID]); GO
ALTER TABLE [dbo].[MEPHSectionDataTableLink] ADD CONSTRAINT [FK_MEPHSectionDataTableLink_ScoreDataTable] FOREIGN KEY ([DataTableGUID]) REFERENCES [dbo].[ScoreDataTable] ([DataTableGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.MEPHSectionRuleValue ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEPHSectionRuleValue] (
[PHSectionRuleValueGUID] uniqueidentifier NOT NULL,
[PHSectionGUID] uniqueidentifier NOT NULL,
[RuleValueKey] nvarchar(50) NOT NULL,
[RuleValue] nvarchar(max) NOT NULL,
[SortOrder] int NULL,
[FillinTemplateGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PHSectionRuleValueGUID])
);
GO
ALTER TABLE [dbo].[MEPHSectionRuleValue] ADD CONSTRAINT [FK_MEPHSectionRuleValue_MEPHSection] FOREIGN KEY ([PHSectionGUID]) REFERENCES [dbo].[MEPHSection] ([PHSectionGUID]); GO
ALTER TABLE [dbo].[MEPHSectionRuleValue] ADD CONSTRAINT [DF__dbo_MEPHSectionRuleValue_SortOrder] DEFAULT ((0)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[MEPHSectionRuleValue] ADD CONSTRAINT [DF__MEPHSecti__Filli__3A9B819B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FillinTemplateGUID]; GO
ALTER TABLE [dbo].[MEPHSectionRuleValue] ADD CONSTRAINT [DF_MEPHSectionRuleValue_PHSectionRuleGUID] DEFAULT (newid()) FOR [PHSectionRuleValueGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEReportLinkTemplateMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEReportLinkTemplateMapping] (
[ReportLinkTemplateMappingGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[CellGUID] uniqueidentifier NOT NULL,
[RowExpanded] int NOT NULL,
[ReportParams] nvarchar(max) NOT NULL,
PRIMARY KEY ([ReportLinkTemplateMappingGUID])
);
GO
ALTER TABLE [dbo].[MEReportLinkTemplateMapping] ADD CONSTRAINT [FK_MEReportLinkTemplateMapping_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[MEReportLinkTemplateMapping] ADD CONSTRAINT [DF_MEReportLinkTemplateMapping_ReportLinkTemplateMappingGUID] DEFAULT (newid()) FOR [ReportLinkTemplateMappingGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MESaveErrorLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[MESaveErrorLog] (
[LogGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[ErrorLogGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([LogGUID])
);
GO
ALTER TABLE [dbo].[MESaveErrorLog] ADD CONSTRAINT [DF_Table_1_HistoryGUID] DEFAULT (newid()) FOR [LogGUID]; GO
ALTER TABLE [dbo].[MESaveErrorLog] ADD CONSTRAINT [DF_MESaveErrorLog_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[MESaveErrorLog] ADD CONSTRAINT [DF_MESaveErrorLog_ModelGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
ALTER TABLE [dbo].[MESaveErrorLog] ADD CONSTRAINT [DF_MESaveErrorLog_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[MESaveErrorLog] ADD CONSTRAINT [DF_MESaveErrorLog_ErrorLogGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ErrorLogGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEScoreExpansion ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEScoreExpansion] (
[ExcelCellGUID] uniqueidentifier NOT NULL,
[ExpansionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[IndexName] nvarchar(64) NOT NULL,
[Count] int NOT NULL,
[ExecutionOrder] int NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
PRIMARY KEY ([ExpansionGUID])
);
GO
ALTER TABLE [dbo].[MEScoreExpansion] ADD CONSTRAINT [DF_ScoreExpansion_ExpansionGUID] DEFAULT (newid()) FOR [ExpansionGUID]; GO
ALTER TABLE [dbo].[MEScoreExpansion] ADD CONSTRAINT [DF_ScoreExpansion_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[MEScoreExpansion] ADD CONSTRAINT [DF_ScoreExpansion_IndexName] DEFAULT ('') FOR [IndexName]; GO
ALTER TABLE [dbo].[MEScoreExpansion] ADD CONSTRAINT [DF_ScoreExpansion_Count] DEFAULT ((0)) FOR [Count]; GO
ALTER TABLE [dbo].[MEScoreExpansion] ADD CONSTRAINT [DF_ScoreExpansion_ExecutionOrder] DEFAULT ((0)) FOR [ExecutionOrder]; GO
ALTER TABLE [dbo].[MEScoreExpansion] ADD CONSTRAINT [DF_MEScoreExpansion_GlobalID] DEFAULT ('') FOR [GlobalID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEScoreExpansionOverride ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEScoreExpansionOverride] (
[OverrideGUID] uniqueidentifier NOT NULL,
[ExpansionProfileGUID] uniqueidentifier NOT NULL,
[ExpansionGlobalID] nvarchar(100) NOT NULL,
[CountOverride] int NOT NULL,
PRIMARY KEY ([OverrideGUID])
);
GO
ALTER TABLE [dbo].[MEScoreExpansionOverride] ADD CONSTRAINT [FK_MEScoreExpansionOverride_MEScoreExpansionProfile] FOREIGN KEY ([ExpansionProfileGUID]) REFERENCES [dbo].[MEScoreExpansionProfile] ([ExpansionProfileGUID]); GO
ALTER TABLE [dbo].[MEScoreExpansionOverride] ADD CONSTRAINT [DF_MEScoreExpansionOverride_OverrideGUID] DEFAULT (newid()) FOR [OverrideGUID]; GO
ALTER TABLE [dbo].[MEScoreExpansionOverride] ADD CONSTRAINT [DF_MEScoreExpansionOverride_ExpansionGlobalID] DEFAULT ('') FOR [ExpansionGlobalID]; GO
ALTER TABLE [dbo].[MEScoreExpansionOverride] ADD CONSTRAINT [DF_MEScoreExpansionOverride_ExpansionProfileGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ExpansionProfileGUID]; GO
ALTER TABLE [dbo].[MEScoreExpansionOverride] ADD CONSTRAINT [DF_MEScoreExpansionOverride_Count] DEFAULT ((0)) FOR [CountOverride]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEScoreExpansionProfile ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEScoreExpansionProfile] (
[ExpansionProfileGUID] uniqueidentifier NOT NULL,
[ParentModelTemplateGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[ChildModelTemplateGUID] uniqueidentifier NOT NULL,
[UsageOrder] tinyint NOT NULL,
[IsOutlier] bit NOT NULL,
PRIMARY KEY ([ExpansionProfileGUID])
);
GO
ALTER TABLE [dbo].[MEScoreExpansionProfile] ADD CONSTRAINT [FK_MEScoreExpansionProfile_EMFModelTemplate] FOREIGN KEY ([ParentModelTemplateGUID]) REFERENCES [dbo].[EMFModelTemplate] ([ModelTemplateGUID]); GO
ALTER TABLE [dbo].[MEScoreExpansionProfile] ADD CONSTRAINT [DF_MEScoreExpansionProfile_ModelTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentModelTemplateGUID]; GO
ALTER TABLE [dbo].[MEScoreExpansionProfile] ADD CONSTRAINT [DF_MEScoreExpansionProfile_IsOutlier] DEFAULT ((0)) FOR [IsOutlier]; GO
ALTER TABLE [dbo].[MEScoreExpansionProfile] ADD CONSTRAINT [DF_MEScoreExpansionProfile_ChildModelTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ChildModelTemplateGUID]; GO
ALTER TABLE [dbo].[MEScoreExpansionProfile] ADD CONSTRAINT [DF_MEScoreExpansionProfile_ExpansionProfileGUID] DEFAULT (newid()) FOR [ExpansionProfileGUID]; GO
ALTER TABLE [dbo].[MEScoreExpansionProfile] ADD CONSTRAINT [DF_MEScoreExpansionProfile_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[MEScoreExpansionProfile] ADD CONSTRAINT [DF_MEScoreExpansionProfile_UsageOrder] DEFAULT ((0)) FOR [UsageOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEScoreExpansionRecommendedMaxCount ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEScoreExpansionRecommendedMaxCount] (
[RecommendedMaxCountID] int NOT NULL,
[SectionName] nvarchar(100) NOT NULL,
[RecommendedMaxCount] int NOT NULL,
PRIMARY KEY ([RecommendedMaxCountID])
);
GO
ALTER TABLE [dbo].[MEScoreExpansionRecommendedMaxCount] ADD CONSTRAINT [DF_MEScoreExpansionRecommendedMaxCount_SectionName] DEFAULT ('') FOR [SectionName]; GO
ALTER TABLE [dbo].[MEScoreExpansionRecommendedMaxCount] ADD CONSTRAINT [DF_MEScoreExpansionRecommendedMaxCount_RecommendedMaxCount] DEFAULT ((0)) FOR [RecommendedMaxCount]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MEScorePlaceholderLabel ------------------
---------------------------------------------
CREATE TABLE [dbo].[MEScorePlaceholderLabel] (
[CellGUID] uniqueidentifier NOT NULL,
[RowExpanded] int NOT NULL,
[SectionMemberGUID] uniqueidentifier NOT NULL,
[PHIndex] int NOT NULL,
[FillinDimensionGUID] uniqueidentifier NOT NULL,
[FillinAttributeGUID] uniqueidentifier NOT NULL,
[IsHidingRow] bit NOT NULL,
[IsHidingColumn] bit NOT NULL,
[IsUserMapped] bit NOT NULL,
[IsExpanded] bit NOT NULL,
[IsClearingRow] bit NOT NULL,
[IsClearingColumn] bit NOT NULL,
[PlaceholderLabelID] bigint NOT NULL,
PRIMARY KEY ([PlaceholderLabelID])
);
CREATE UNIQUE NONCLUSTERED INDEX [idx_uniquelabel] ON [dbo].[MEScorePlaceholderLabel] ([CellGUID], [RowExpanded]);
GO
ALTER TABLE [dbo].[MEScorePlaceholderLabel] ADD CONSTRAINT [FK_MEScorePlaceholderLabel_MEExcelCell] FOREIGN KEY ([CellGUID]) REFERENCES [dbo].[MEExcelCell] ([ExcelCellGUID]); GO
ALTER TABLE [dbo].[MEScorePlaceholderLabel] ADD CONSTRAINT [FK_MEScorePlaceholderLabel_ScoreAttribute] FOREIGN KEY ([FillinAttributeGUID]) REFERENCES [dbo].[ScoreAttribute] ([AttributeGUID]); GO
ALTER TABLE [dbo].[MEScorePlaceholderLabel] ADD CONSTRAINT [FK_MEScorePlaceholderLabel_ScoreDimension] FOREIGN KEY ([FillinDimensionGUID]) REFERENCES [dbo].[ScoreDimension] ([DimensionGUID]); GO
ALTER TABLE [dbo].[MEScorePlaceholderLabel] ADD CONSTRAINT [DF_MEScorePlaceholderLabel_IsHidingRow] DEFAULT ((0)) FOR [IsHidingRow]; GO
ALTER TABLE [dbo].[MEScorePlaceholderLabel] ADD CONSTRAINT [DF_MEScorePlaceholderLabel_IsHidingColumn] DEFAULT ((0)) FOR [IsHidingColumn]; GO
ALTER TABLE [dbo].[MEScorePlaceholderLabel] ADD CONSTRAINT [DF_MEScorePlaceholderLabel_IsUserMapped] DEFAULT ((0)) FOR [IsUserMapped]; GO
ALTER TABLE [dbo].[MEScorePlaceholderLabel] ADD CONSTRAINT [DF_MEScorePlaceholderLabel_IsExpanded] DEFAULT ((1)) FOR [IsExpanded]; GO
ALTER TABLE [dbo].[MEScorePlaceholderLabel] ADD CONSTRAINT [DF_MEScorePlaceholderLabel_IsClearingRow] DEFAULT ((0)) FOR [IsClearingRow]; GO
ALTER TABLE [dbo].[MEScorePlaceholderLabel] ADD CONSTRAINT [DF_MEScorePlaceholderLabel_IsClearingColumn] DEFAULT ((0)) FOR [IsClearingColumn]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MSchange_tracking_history ------------------
---------------------------------------------
CREATE TABLE [dbo].[MSchange_tracking_history] (
[internal_table_name] nvarchar(128) NOT NULL,
[table_name] nvarchar(128) NOT NULL,
[start_time] datetime NOT NULL,
[end_time] datetime NOT NULL,
[rows_cleaned_up] bigint NOT NULL,
[cleanup_version] bigint NOT NULL,
[comments] nvarchar(max) NOT NULL
);
CREATE NONCLUSTERED INDEX [IX_MSchange_tracking_history_start_time] ON [dbo].[MSchange_tracking_history] ([start_time]);
GO
---------------------------------------------
---------------------------------------------
-- dbo.MenuItemSecurity ------------------
---------------------------------------------
CREATE TABLE [dbo].[MenuItemSecurity] (
[MenuItemSecurityGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(400) NOT NULL,
PRIMARY KEY ([MenuItemSecurityGUID])
);
GO
ALTER TABLE [dbo].[MenuItemSecurity] ADD CONSTRAINT [DF__MenuItemS__MenuI__539C6B59] DEFAULT (newid()) FOR [MenuItemSecurityGUID]; GO
ALTER TABLE [dbo].[MenuItemSecurity] ADD CONSTRAINT [DF__MenuItemSe__Name__54908F92] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MergedRoleRoles ------------------
---------------------------------------------
CREATE TABLE [dbo].[MergedRoleRoles] (
[MergedRoleRolesGUID] uniqueidentifier NOT NULL,
[MergedRoleGUID] uniqueidentifier NOT NULL,
[UserRoleGuid] uniqueidentifier NOT NULL,
PRIMARY KEY ([MergedRoleGUID], [UserRoleGuid])
);
GO
ALTER TABLE [dbo].[MergedRoleRoles] ADD CONSTRAINT [DF__MergedRol__Merge__36F3DACF] DEFAULT (newid()) FOR [MergedRoleRolesGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MergedRoles ------------------
---------------------------------------------
CREATE TABLE [dbo].[MergedRoles] (
[MergedRoleGUID] uniqueidentifier NOT NULL,
[Name] varchar(100) NOT NULL,
PRIMARY KEY ([MergedRoleGUID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.MobileDashboardFilterCache ------------------
---------------------------------------------
CREATE TABLE [dbo].[MobileDashboardFilterCache] (
[MobileDashboardFilterCacheGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[DashboardGUID] uniqueidentifier NOT NULL,
[ParameterGUID] uniqueidentifier NOT NULL,
[Filter] nvarchar(max) NOT NULL,
[DateCreatedUTC] datetime NOT NULL,
PRIMARY KEY ([MobileDashboardFilterCacheGUID])
);
GO
ALTER TABLE [dbo].[MobileDashboardFilterCache] ADD CONSTRAINT [DF_dbo_MobileDashboardFilterCache_DateCreatedUTC] DEFAULT (getutcdate()) FOR [DateCreatedUTC]; GO
ALTER TABLE [dbo].[MobileDashboardFilterCache] ADD CONSTRAINT [DF__MobileDas__Mobil__6FFCDD62] DEFAULT (newid()) FOR [MobileDashboardFilterCacheGUID]; GO
ALTER TABLE [dbo].[MobileDashboardFilterCache] ADD CONSTRAINT [DF__MobileDas__Filte__70F1019B] DEFAULT ('') FOR [Filter]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MobileDashboardWidgetCache ------------------
---------------------------------------------
CREATE TABLE [dbo].[MobileDashboardWidgetCache] (
[MobileDashboardWidgetCacheGUID] uniqueidentifier NOT NULL,
[DashboardWidgetGUID] uniqueidentifier NOT NULL,
[DesktopTemplateGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[Data] nvarchar(max) NOT NULL,
[DateCreated] datetime NOT NULL,
[DateCreatedUtc] datetime NOT NULL,
[IsCube] bit NOT NULL,
PRIMARY KEY ([MobileDashboardWidgetCacheGUID])
);
GO
ALTER TABLE [dbo].[MobileDashboardWidgetCache] ADD CONSTRAINT [FK__MobileDas__Dashb__7714BA9C] FOREIGN KEY ([DashboardWidgetGUID]) REFERENCES [dbo].[DashboardWidget] ([DashboardWidgetGUID]); GO
ALTER TABLE [dbo].[MobileDashboardWidgetCache] ADD CONSTRAINT [DF__MobileDas__Mobil__6F7398D4] DEFAULT (newid()) FOR [MobileDashboardWidgetCacheGUID]; GO
ALTER TABLE [dbo].[MobileDashboardWidgetCache] ADD CONSTRAINT [DF__MobileDas__Dashb__7067BD0D] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DashboardWidgetGUID]; GO
ALTER TABLE [dbo].[MobileDashboardWidgetCache] ADD CONSTRAINT [DF__MobileDas__Deskt__715BE146] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DesktopTemplateGUID]; GO
ALTER TABLE [dbo].[MobileDashboardWidgetCache] ADD CONSTRAINT [DF__MobileDas__UserG__7250057F] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[MobileDashboardWidgetCache] ADD CONSTRAINT [DF__MobileDash__Data__734429B8] DEFAULT ('') FOR [Data]; GO
ALTER TABLE [dbo].[MobileDashboardWidgetCache] ADD CONSTRAINT [DF__MobileDas__DateC__74384DF1] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[MobileDashboardWidgetCache] ADD CONSTRAINT [DF__MobileDas__DateC__752C722A] DEFAULT (getutcdate()) FOR [DateCreatedUtc]; GO
ALTER TABLE [dbo].[MobileDashboardWidgetCache] ADD CONSTRAINT [DF__MobileDas__IsCub__76209663] DEFAULT ((0)) FOR [IsCube]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MobileSecurity ------------------
---------------------------------------------
CREATE TABLE [dbo].[MobileSecurity] (
[UserGUID] uniqueidentifier NOT NULL,
[MobileSecurityGUID] uniqueidentifier NOT NULL,
[DashboardGUID] uniqueidentifier NOT NULL,
[DateCreatedUTC] datetime NOT NULL,
PRIMARY KEY ([MobileSecurityGUID])
);
GO
ALTER TABLE [dbo].[MobileSecurity] ADD CONSTRAINT [DF_dbo_MobileSecurity_DateCreatedUTC] DEFAULT (getutcdate()) FOR [DateCreatedUTC]; GO
ALTER TABLE [dbo].[MobileSecurity] ADD CONSTRAINT [DF__MobileSec__Dashb__2AB38EDC] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DashboardGUID]; GO
ALTER TABLE [dbo].[MobileSecurity] ADD CONSTRAINT [DF__MobileSec__Mobil__6C2C4C7E] DEFAULT (newid()) FOR [MobileSecurityGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ModelCacheLookup ------------------
---------------------------------------------
CREATE TABLE [dbo].[ModelCacheLookup] (
[ModelCacheLookupID] uniqueidentifier NOT NULL,
[ModelGuid] uniqueidentifier NULL,
[ModelCacheServer] nvarchar(400) NOT NULL,
[DateCached] datetime NOT NULL,
PRIMARY KEY ([ModelCacheLookupID])
);
CREATE NONCLUSTERED INDEX [NUNC_ModelGuid] ON [dbo].[ModelCacheLookup] ([ModelGuid]);
GO
ALTER TABLE [dbo].[ModelCacheLookup] ADD CONSTRAINT [FK_ModelCacheLookup_XPlan] FOREIGN KEY ([ModelGuid]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[ModelCacheLookup] ADD CONSTRAINT [DF__ModelCach__Model__33558E7C] DEFAULT (newid()) FOR [ModelCacheLookupID]; GO
ALTER TABLE [dbo].[ModelCacheLookup] ADD CONSTRAINT [DF__ModelCach__Model__3449B2B5] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGuid]; GO
ALTER TABLE [dbo].[ModelCacheLookup] ADD CONSTRAINT [DF__ModelCach__Model__353DD6EE] DEFAULT ('') FOR [ModelCacheServer]; GO
ALTER TABLE [dbo].[ModelCacheLookup] ADD CONSTRAINT [DF__ModelCach__DateC__6A7BA634] DEFAULT (getdate()) FOR [DateCached]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ModelImportExportLock ------------------
---------------------------------------------
CREATE TABLE [dbo].[ModelImportExportLock] (
[ModelImportExportLockGuid] uniqueidentifier NOT NULL,
[PlanGuid] uniqueidentifier NOT NULL,
[UserGuid] uniqueidentifier NOT NULL,
[UserName] nvarchar(max) NOT NULL,
[DateExportedUtc] datetime NOT NULL,
[DateImportedUtc] datetime NOT NULL,
[IsImported] bit NOT NULL,
PRIMARY KEY ([ModelImportExportLockGuid])
);
GO
ALTER TABLE [dbo].[ModelImportExportLock] ADD CONSTRAINT [FK__ModelImpo__PlanG__44D4EA40] FOREIGN KEY ([PlanGuid]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[ModelImportExportLock] ADD CONSTRAINT [DF__ModelImpo__Model__43E0C607] DEFAULT (newid()) FOR [ModelImportExportLockGuid]; GO
ALTER TABLE [dbo].[ModelImportExportLock] ADD CONSTRAINT [DF__ModelImpo__UserG__45C90E79] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGuid]; GO
ALTER TABLE [dbo].[ModelImportExportLock] ADD CONSTRAINT [DF__ModelImpo__UserN__46BD32B2] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[ModelImportExportLock] ADD CONSTRAINT [DF__ModelImpo__DateE__47B156EB] DEFAULT (getutcdate()) FOR [DateExportedUtc]; GO
ALTER TABLE [dbo].[ModelImportExportLock] ADD CONSTRAINT [DF__ModelImpo__DateI__48A57B24] DEFAULT (getutcdate()) FOR [DateImportedUtc]; GO
ALTER TABLE [dbo].[ModelImportExportLock] ADD CONSTRAINT [DF__ModelImpo__IsImp__49999F5D] DEFAULT ((0)) FOR [IsImported]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ModelSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[ModelSection] (
[ModelSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(400) NOT NULL,
[Range] nvarchar(400) NOT NULL,
[Address] nvarchar(400) NOT NULL,
[SheetGUID] uniqueidentifier NOT NULL,
[ParentGUID] uniqueidentifier NOT NULL,
[SortOrder] int NOT NULL,
[IsInherit] bit NOT NULL,
[IsHidden] bit NOT NULL,
PRIMARY KEY ([ModelSectionGUID])
);
CREATE NONCLUSTERED INDEX [IX_ModelSection_SheetGUID] ON [dbo].[ModelSection] ([SheetGUID]);
GO
ALTER TABLE [dbo].[ModelSection] ADD CONSTRAINT [DF__ModelSect__Model__46535457] DEFAULT (newid()) FOR [ModelSectionGUID]; GO
ALTER TABLE [dbo].[ModelSection] ADD CONSTRAINT [DF__ModelSecti__Name__47477890] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[ModelSection] ADD CONSTRAINT [DF__ModelSect__Range__483B9CC9] DEFAULT ('') FOR [Range]; GO
ALTER TABLE [dbo].[ModelSection] ADD CONSTRAINT [DF__ModelSect__Addre__492FC102] DEFAULT ('') FOR [Address]; GO
ALTER TABLE [dbo].[ModelSection] ADD CONSTRAINT [DF__ModelSect__Sheet__4A23E53B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SheetGUID]; GO
ALTER TABLE [dbo].[ModelSection] ADD CONSTRAINT [DF__ModelSect__Paren__4B180974] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentGUID]; GO
ALTER TABLE [dbo].[ModelSection] ADD CONSTRAINT [DF__ModelSect__SortO__4C0C2DAD] DEFAULT ((0)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[ModelSection] ADD CONSTRAINT [DF__ModelSect__IsInh__4D0051E6] DEFAULT ((1)) FOR [IsInherit]; GO
ALTER TABLE [dbo].[ModelSection] ADD CONSTRAINT [DF__ModelSect__IsHid__4DF4761F] DEFAULT ((0)) FOR [IsHidden]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgAttachment ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgAttachment] (
[AttachmentGUID] uniqueidentifier NOT NULL,
[MessageGUID] uniqueidentifier NOT NULL,
[Filename] nvarchar(64) NOT NULL,
[FileSize] int NOT NULL,
[FileDirectory] nvarchar(450) NOT NULL,
PRIMARY KEY ([AttachmentGUID])
);
GO
ALTER TABLE [dbo].[MsgAttachment] ADD CONSTRAINT [FK_MsgAttachment_MsgMessage] FOREIGN KEY ([MessageGUID]) REFERENCES [dbo].[MsgMessage] ([MessageGUID]); GO
ALTER TABLE [dbo].[MsgAttachment] ADD CONSTRAINT [DF_MsgAttachment_ATTACHMENTGUID] DEFAULT (newid()) FOR [AttachmentGUID]; GO
ALTER TABLE [dbo].[MsgAttachment] ADD CONSTRAINT [DF_MsgAttachment_MESSAGEGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [MessageGUID]; GO
ALTER TABLE [dbo].[MsgAttachment] ADD CONSTRAINT [DF_MsgAttachment_FILENAME] DEFAULT ('') FOR [Filename]; GO
ALTER TABLE [dbo].[MsgAttachment] ADD CONSTRAINT [DF_MsgAttachment_FILESIZE] DEFAULT ((0)) FOR [FileSize]; GO
ALTER TABLE [dbo].[MsgAttachment] ADD CONSTRAINT [DF_MsgAttachment_FILEDIRECTORY] DEFAULT ('') FOR [FileDirectory]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgBookmark ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgBookmark] (
[BookmarkGUID] uniqueidentifier NOT NULL,
[ForumGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([BookmarkGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [ak_bookmarkforumuser] ON [dbo].[MsgBookmark] ([ForumGUID], [UserGUID]);
GO
ALTER TABLE [dbo].[MsgBookmark] ADD CONSTRAINT [FK_MsgBookmark_MsgForum] FOREIGN KEY ([ForumGUID]) REFERENCES [dbo].[MsgForum] ([ForumGUID]); GO
ALTER TABLE [dbo].[MsgBookmark] ADD CONSTRAINT [FK_MsgBookmark_UserProfile] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[MsgBookmark] ADD CONSTRAINT [DF_MsgBookmark_BOOKMARKGUID] DEFAULT (newid()) FOR [BookmarkGUID]; GO
ALTER TABLE [dbo].[MsgBookmark] ADD CONSTRAINT [DF_MsgBookmark_FORUMGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [ForumGUID]; GO
ALTER TABLE [dbo].[MsgBookmark] ADD CONSTRAINT [DF_MsgBookmark_USERGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [UserGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgEmailActivity ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgEmailActivity] (
[EmailActivityID] bigint NOT NULL,
[EmailSummaryID] int NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[EmailAddress] nvarchar(450) NOT NULL,
[MessageGUID] uniqueidentifier NOT NULL,
[Timestamp] datetime NOT NULL,
[IsSuccess] bit NOT NULL,
[Description] nvarchar(max) NOT NULL,
[ErrorLogGUID] uniqueidentifier NOT NULL,
[DateCreated] datetime NOT NULL,
PRIMARY KEY ([EmailActivityID])
);
CREATE NONCLUSTERED INDEX [NCNU_Timestamp_Index] ON [dbo].[MsgEmailActivity] ([Timestamp]);
GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [FK_MsgEmailActivity_MsgEmailSummary] FOREIGN KEY ([EmailSummaryID]) REFERENCES [dbo].[MsgEmailSummary] ([EmailSummaryID]); GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [DF__MsgEmailA__Messa__4F1A1392] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MessageGUID]; GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [DF_MsgEmailActivity_LogGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ErrorLogGUID]; GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [DF_MsgEmailActivity_DateCreated] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [DF__MsgEmailA__Email__4C3DA6E7] DEFAULT ((0)) FOR [EmailSummaryID]; GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [DF__MsgEmailA__Email__4E25EF59] DEFAULT ('') FOR [EmailAddress]; GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [DF__MsgEmailA__Times__500E37CB] DEFAULT (getdate()) FOR [Timestamp]; GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [DF__MsgEmailA__IsSuc__51025C04] DEFAULT ((0)) FOR [IsSuccess]; GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [DF_MsgEmailActivity_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[MsgEmailActivity] ADD CONSTRAINT [DF__MsgEmailA__UserG__4D31CB20] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgEmailSummary ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgEmailSummary] (
[EmailSummaryID] int NOT NULL,
[Timestamp] datetime NOT NULL,
[IsSuccess] bit NOT NULL,
PRIMARY KEY ([EmailSummaryID])
);
CREATE NONCLUSTERED INDEX [NCNU_Timestamp_Index] ON [dbo].[MsgEmailSummary] ([Timestamp]);
GO
ALTER TABLE [dbo].[MsgEmailSummary] ADD CONSTRAINT [DF__MsgEmailS__Times__52EAA476] DEFAULT (getdate()) FOR [Timestamp]; GO
ALTER TABLE [dbo].[MsgEmailSummary] ADD CONSTRAINT [DF__MsgEmailS__IsSuc__53DEC8AF] DEFAULT ((0)) FOR [IsSuccess]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgForum ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgForum] (
[ForumGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[ForumType] int NOT NULL,
PRIMARY KEY ([ForumGUID])
);
GO
ALTER TABLE [dbo].[MsgForum] ADD CONSTRAINT [DF_MsgForum_FORUMGUID] DEFAULT (newid()) FOR [ForumGUID]; GO
ALTER TABLE [dbo].[MsgForum] ADD CONSTRAINT [DF_MsgForum_ENTITYGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [EntityGUID]; GO
ALTER TABLE [dbo].[MsgForum] ADD CONSTRAINT [DF_MsgForum_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[MsgForum] ADD CONSTRAINT [DF_MsgForum_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[MsgForum] ADD CONSTRAINT [DF_MsgForum_FORUMTYPE] DEFAULT ((0)) FOR [ForumType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgForumRead ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgForumRead] (
[ForumReadGUID] uniqueidentifier NOT NULL,
[ForumGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[DateViewed] datetime NOT NULL
);
CREATE UNIQUE NONCLUSTERED INDEX [ak_forumreadforumuser] ON [dbo].[MsgForumRead] ([ForumGUID], [UserGUID]);
GO
ALTER TABLE [dbo].[MsgForumRead] ADD CONSTRAINT [FK_MsgForumRead_MsgForum] FOREIGN KEY ([ForumGUID]) REFERENCES [dbo].[MsgForum] ([ForumGUID]); GO
ALTER TABLE [dbo].[MsgForumRead] ADD CONSTRAINT [FK_MsgForumRead_UserProfile] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[MsgForumRead] ADD CONSTRAINT [DF_MsgForumRead_FORUMREADGUID] DEFAULT (newid()) FOR [ForumReadGUID]; GO
ALTER TABLE [dbo].[MsgForumRead] ADD CONSTRAINT [DF_MsgForumRead_FORUMGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [ForumGUID]; GO
ALTER TABLE [dbo].[MsgForumRead] ADD CONSTRAINT [DF_MsgForumRead_USERGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [UserGUID]; GO
ALTER TABLE [dbo].[MsgForumRead] ADD CONSTRAINT [DF_MsgForumRead_DATEVIEWED] DEFAULT (getdate()) FOR [DateViewed]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgForumViewed ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgForumViewed] (
[UserGUID] uniqueidentifier NOT NULL,
[ForumGUID] uniqueidentifier NOT NULL,
[LastViewDate] datetime NOT NULL,
PRIMARY KEY ([UserGUID], [ForumGUID])
);
GO
ALTER TABLE [dbo].[MsgForumViewed] ADD CONSTRAINT [DF_MsgForumViewed_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[MsgForumViewed] ADD CONSTRAINT [DF_MsgForumViewed_FORUMGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ForumGUID]; GO
ALTER TABLE [dbo].[MsgForumViewed] ADD CONSTRAINT [DF_MsgForumViewed_LASTVIEWDATE] DEFAULT (((1)-(1))-(2000)) FOR [LastViewDate]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgMessage ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgMessage] (
[MessageGUID] uniqueidentifier NOT NULL,
[TopicGUID] uniqueidentifier NOT NULL,
[MessageTypeGUID] uniqueidentifier NOT NULL,
[ReplyToMsgGUID] uniqueidentifier NOT NULL,
[Subject] nvarchar(450) NOT NULL,
[Body] nvarchar(max) NOT NULL,
[AuthorGUID] uniqueidentifier NOT NULL,
[DateCreated] datetime NOT NULL,
[DateSent] datetime NOT NULL,
[HasAttachments] bit NOT NULL,
[IsSent] bit NOT NULL,
PRIMARY KEY ([MessageGUID])
);
CREATE NONCLUSTERED INDEX [NCNU_TopicGUID] ON [dbo].[MsgMessage] ([TopicGUID]);
GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [FK_MsgMessage_MsgTopic] FOREIGN KEY ([TopicGUID]) REFERENCES [dbo].[MsgTopic] ([TopicGUID]); GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_MESSAGEGUID] DEFAULT (newid()) FOR [MessageGUID]; GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_TOPICGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [TopicGUID]; GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_MESSAGETYPEGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [MessageTypeGUID]; GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_REPLYTOMSGGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [ReplyToMsgGUID]; GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_SUBJECT] DEFAULT ('') FOR [Subject]; GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_BODY] DEFAULT ('') FOR [Body]; GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_AUTHORGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [AuthorGUID]; GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_DATECREATED] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_HASATTACHMENTS] DEFAULT ((0)) FOR [HasAttachments]; GO
ALTER TABLE [dbo].[MsgMessage] ADD CONSTRAINT [DF_MsgMessage_ISSENT] DEFAULT ((0)) FOR [IsSent]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgMessagePlanLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgMessagePlanLink] (
[MessageGUID] uniqueidentifier NOT NULL,
[PlanGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([MessageGUID], [PlanGUID])
);
GO
ALTER TABLE [dbo].[MsgMessagePlanLink] ADD CONSTRAINT [FK_MsgMessagePlanLink_MsgMessage] FOREIGN KEY ([MessageGUID]) REFERENCES [dbo].[MsgMessage] ([MessageGUID]); GO
ALTER TABLE [dbo].[MsgMessagePlanLink] ADD CONSTRAINT [DF_MsgMessagePlanLink_MESSAGEGUID] DEFAULT (newid()) FOR [MessageGUID]; GO
ALTER TABLE [dbo].[MsgMessagePlanLink] ADD CONSTRAINT [DF_MsgMessagePlanLink_PLANGUID] DEFAULT (newid()) FOR [PlanGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgMessageRead ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgMessageRead] (
[UserGUID] uniqueidentifier NOT NULL,
[MessageGUID] uniqueidentifier NOT NULL,
[IsRead] bit NOT NULL,
[DateRead] datetime NOT NULL,
PRIMARY KEY ([UserGUID], [MessageGUID])
);
GO
ALTER TABLE [dbo].[MsgMessageRead] ADD CONSTRAINT [FK_MsgMessageRead_MsgMessage] FOREIGN KEY ([MessageGUID]) REFERENCES [dbo].[MsgMessage] ([MessageGUID]); GO
ALTER TABLE [dbo].[MsgMessageRead] ADD CONSTRAINT [FK_MsgMessageRead_UserProfile] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[MsgMessageRead] ADD CONSTRAINT [DF_MsgMessageRead_USERGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [UserGUID]; GO
ALTER TABLE [dbo].[MsgMessageRead] ADD CONSTRAINT [DF_MsgMessageRead_MESSAGEGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [MessageGUID]; GO
ALTER TABLE [dbo].[MsgMessageRead] ADD CONSTRAINT [DF_MsgMessageRead_ISUNREAD] DEFAULT ((1)) FOR [IsRead]; GO
ALTER TABLE [dbo].[MsgMessageRead] ADD CONSTRAINT [DF_MsgMessageRead_DATEREAD] DEFAULT (((1)-(1))-(2000)) FOR [DateRead]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgMessageType ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgMessageType] (
[MessageTypeGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[ImageType] int NOT NULL,
[LinkType] int NOT NULL,
[Type] int NOT NULL,
[SubjectPrefix] nvarchar(64) NOT NULL,
[Header] nvarchar(max) NOT NULL,
[Footer] nvarchar(max) NOT NULL,
[BuiltInType] int NOT NULL,
[IsAllowingReplyViaEmail] bit NOT NULL,
[IsMarkingReadForNewMessages] bit NOT NULL,
[IsVisible] bit NOT NULL,
PRIMARY KEY ([MessageTypeGUID])
);
GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_MESSAGETYPEGUID] DEFAULT (newid()) FOR [MessageTypeGUID]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_ICONNAME] DEFAULT ((0)) FOR [ImageType]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_LINKTYPE] DEFAULT ((0)) FOR [LinkType]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_SUBJECTPREFIX] DEFAULT ('') FOR [SubjectPrefix]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_HEADER] DEFAULT ('') FOR [Header]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_FOOTER] DEFAULT ('') FOR [Footer]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_BuiltInType] DEFAULT ((0)) FOR [BuiltInType]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_IsVisible] DEFAULT ((1)) FOR [IsVisible]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_IsMarkingReadForNewMessages] DEFAULT ((0)) FOR [IsMarkingReadForNewMessages]; GO
ALTER TABLE [dbo].[MsgMessageType] ADD CONSTRAINT [DF_MsgMessageType_IsAllowingReplyViaEmail] DEFAULT ((0)) FOR [IsAllowingReplyViaEmail]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgTopic ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgTopic] (
[TopicGUID] uniqueidentifier NOT NULL,
[ForumGUID] uniqueidentifier NOT NULL,
[AuthorGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[TopicType] int NOT NULL,
[DateCreated] datetime NOT NULL,
[Tag] nvarchar(450) NOT NULL,
PRIMARY KEY ([TopicGUID])
);
GO
ALTER TABLE [dbo].[MsgTopic] ADD CONSTRAINT [DF_MsgTopic_TOPICGUID] DEFAULT (newid()) FOR [TopicGUID]; GO
ALTER TABLE [dbo].[MsgTopic] ADD CONSTRAINT [DF_MsgTopic_FORUMGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [ForumGUID]; GO
ALTER TABLE [dbo].[MsgTopic] ADD CONSTRAINT [DF_MsgTopic_AUTHORGUID] DEFAULT ('{00000000-0000-0000-0000-000000000000}') FOR [AuthorGUID]; GO
ALTER TABLE [dbo].[MsgTopic] ADD CONSTRAINT [DF_MsgTopic_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[MsgTopic] ADD CONSTRAINT [DF_MsgTopic_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[MsgTopic] ADD CONSTRAINT [DF_MsgTopic_TOPICTYPE] DEFAULT ((0)) FOR [TopicType]; GO
ALTER TABLE [dbo].[MsgTopic] ADD CONSTRAINT [DF_MsgTopic_DATECREATED] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[MsgTopic] ADD CONSTRAINT [DF_MsgTopic_Tag] DEFAULT ('') FOR [Tag]; GO
---------------------------------------------
---------------------------------------------
-- dbo.MsgTopicArchive ------------------
---------------------------------------------
CREATE TABLE [dbo].[MsgTopicArchive] (
[UserGUID] uniqueidentifier NOT NULL,
[TopicGUID] uniqueidentifier NOT NULL,
[DateArchived] datetime NOT NULL,
PRIMARY KEY ([UserGUID], [TopicGUID])
);
CREATE NONCLUSTERED INDEX [NCNU_TopicGUID_UserGUID] ON [dbo].[MsgTopicArchive] ([TopicGUID], [UserGUID]);
GO
ALTER TABLE [dbo].[MsgTopicArchive] ADD CONSTRAINT [FK_MsgTopicArchive_UserProfile] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[MsgTopicArchive] ADD CONSTRAINT [DF_MsgTopicArchive_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[MsgTopicArchive] ADD CONSTRAINT [DF_MsgTopicArchive_TopicGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TopicGUID]; GO
ALTER TABLE [dbo].[MsgTopicArchive] ADD CONSTRAINT [DF_MsgTopicArchive_DateArchived] DEFAULT ('1/1/1900') FOR [DateArchived]; GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZCriterion ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZCriterion] (
[CriterionGUID] uniqueidentifier NOT NULL,
[ProviderSettingsGUID] uniqueidentifier NOT NULL,
[DimensionMemberGUID] uniqueidentifier NOT NULL,
[CriterionType] int NOT NULL,
[WeightingType] int NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL
);
GO
ALTER TABLE [dbo].[OMZCriterion] ADD CONSTRAINT [DF_OMZCriterion_PROVIDERSETTINGSGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ProviderSettingsGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZEvaluatorStatus ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZEvaluatorStatus] (
[EvaluatorStatusGUID] uniqueidentifier NOT NULL,
[PoolGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[Type] int NOT NULL,
[Status] int NOT NULL,
PRIMARY KEY ([EvaluatorStatusGUID])
);
GO
ALTER TABLE [dbo].[OMZEvaluatorStatus] ADD CONSTRAINT [FK_OMZEvaluatorStatus_OMZPool] FOREIGN KEY ([PoolGUID]) REFERENCES [dbo].[OMZPool] ([PoolGUID]); GO
ALTER TABLE [dbo].[OMZEvaluatorStatus] ADD CONSTRAINT [DF_Table_1_POOLEVALUATORSTATUSGUID] DEFAULT (newid()) FOR [EvaluatorStatusGUID]; GO
ALTER TABLE [dbo].[OMZEvaluatorStatus] ADD CONSTRAINT [DF_OMZEvaluatorStatus_POOLGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PoolGUID]; GO
ALTER TABLE [dbo].[OMZEvaluatorStatus] ADD CONSTRAINT [DF_OMZEvaluatorStatus_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[OMZEvaluatorStatus] ADD CONSTRAINT [DF_OMZEvaluatorStatus_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[OMZEvaluatorStatus] ADD CONSTRAINT [DF_OMZEvaluatorStatus_STATUS] DEFAULT ((0)) FOR [Status]; GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZMapping] (
[MappingGUID] uniqueidentifier NOT NULL,
[Category] nvarchar(64) NOT NULL,
[ParentGUID] uniqueidentifier NOT NULL,
[SourceGUID] uniqueidentifier NOT NULL,
[TargetGUID] uniqueidentifier NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZPool ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZPool] (
[PoolGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[ProviderSettingsGUID] uniqueidentifier NOT NULL,
[PoolDimensionMemberGUID] uniqueidentifier NOT NULL,
[Metadata] xml NOT NULL,
[ApprovedFormFieldGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[IsUsingFinancialReturn] bit NOT NULL,
[ScoringReportGUID] uniqueidentifier NOT NULL,
[LastDistributeDate] datetime NOT NULL,
[IsScoringLocked] bit NOT NULL,
[ProjectTypeID] tinyint NOT NULL,
PRIMARY KEY ([PoolGUID])
);
GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_OPTIMIZATIONPOOLGUID] DEFAULT (newid()) FOR [PoolGUID]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_INPUTDATACONFIGGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ProviderSettingsGUID]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_POOLDIMENSIONMEMBERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PoolDimensionMemberGUID]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_METADATA] DEFAULT ('') FOR [Metadata]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_APPROVEDFORMFIELDGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ApprovedFormFieldGUID]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_ProjectTypeID] DEFAULT ((1)) FOR [ProjectTypeID]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_IsUsingFinancialReturn] DEFAULT ((1)) FOR [IsUsingFinancialReturn]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_LastDistributeDate] DEFAULT ('2000-01-01 00:00:00.000') FOR [LastDistributeDate]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_IsScoringLocked] DEFAULT ((0)) FOR [IsScoringLocked]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[OMZPool] ADD CONSTRAINT [DF_OMZPool_ScoringReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScoringReportGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZProviderSettings ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZProviderSettings] (
[ProviderSettingsGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[AssemblyQualifiedName] nvarchar(450) NOT NULL,
[Metadata] xml NOT NULL,
[ProviderAssemblyQualifiedName] nvarchar(450) NOT NULL,
[PoolDimensionGUID] uniqueidentifier NOT NULL,
[DefaultEvaluatorRoleGUID] uniqueidentifier NOT NULL,
[DefaultGridTemplateGUID] uniqueidentifier NOT NULL,
[DefaultApprovedFieldGUID] uniqueidentifier NOT NULL,
[DefaultScoringReportGUID] uniqueidentifier NOT NULL,
[DefaultPlanTypeGUID] uniqueidentifier NOT NULL,
[IsActive] bit NOT NULL,
PRIMARY KEY ([ProviderSettingsGUID])
);
GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_METADATA] DEFAULT ('') FOR [Metadata]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_PROVIDERASSEMBLYQUALIFIEDNAME] DEFAULT ('') FOR [ProviderAssemblyQualifiedName]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_POOLDIMENSIONGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PoolDimensionGUID]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_DefaultScoringReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultScoringReportGUID]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_DefaultPlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultPlanTypeGUID]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_IsActive] DEFAULT ((1)) FOR [IsActive]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_DefaultEvaluatorRoleGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultEvaluatorRoleGUID]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_DefaultGridTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultGridTemplateGUID]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_DefaultApprovedFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultApprovedFieldGUID]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_PROVIDERSETTINGSGUID] DEFAULT (newid()) FOR [ProviderSettingsGUID]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[OMZProviderSettings] ADD CONSTRAINT [DF_OMZProviderSettings_ASSEMBLYQUALIFIEDNAME] DEFAULT ('') FOR [AssemblyQualifiedName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZScenario ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZScenario] (
[ScenarioGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[PoolGUID] uniqueidentifier NOT NULL,
[Metadata] xml NOT NULL,
PRIMARY KEY ([ScenarioGUID])
);
GO
ALTER TABLE [dbo].[OMZScenario] ADD CONSTRAINT [DF_OMZScenario_Description] DEFAULT ('') FOR [Description]; GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZWorkspaceColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZWorkspaceColumn] (
[WorkspaceColumnGUID] uniqueidentifier NOT NULL,
[WorkspaceTabGUID] uniqueidentifier NOT NULL,
[ColumnID] nvarchar(64) NOT NULL,
[ColumnIndex] int NOT NULL,
[Width] int NOT NULL,
[IsVisible] bit NOT NULL,
[IsTotal] bit NOT NULL,
PRIMARY KEY ([WorkspaceColumnGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_OMZWorkspaceColumn] ON [dbo].[OMZWorkspaceColumn] ([WorkspaceTabGUID], [ColumnID]);
GO
ALTER TABLE [dbo].[OMZWorkspaceColumn] ADD CONSTRAINT [FK_OMZWorkspaceColumn_OMZWorkspaceTab] FOREIGN KEY ([WorkspaceTabGUID]) REFERENCES [dbo].[OMZWorkspaceTab] ([WorkspaceTabGUID]); GO
ALTER TABLE [dbo].[OMZWorkspaceColumn] ADD CONSTRAINT [DF_Table_1_WORKSPACETABCOLUMNGUID] DEFAULT (newid()) FOR [WorkspaceColumnGUID]; GO
ALTER TABLE [dbo].[OMZWorkspaceColumn] ADD CONSTRAINT [DF_OMZWorkspaceColumn_WORKSPACETABGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkspaceTabGUID]; GO
ALTER TABLE [dbo].[OMZWorkspaceColumn] ADD CONSTRAINT [DF_OMZWorkspaceColumn_COLUMNID] DEFAULT ('') FOR [ColumnID]; GO
ALTER TABLE [dbo].[OMZWorkspaceColumn] ADD CONSTRAINT [DF_OMZWorkspaceColumn_INDEX] DEFAULT ((-1)) FOR [ColumnIndex]; GO
ALTER TABLE [dbo].[OMZWorkspaceColumn] ADD CONSTRAINT [DF_OMZWorkspaceColumn_WIDTH] DEFAULT ((-1)) FOR [Width]; GO
ALTER TABLE [dbo].[OMZWorkspaceColumn] ADD CONSTRAINT [DF_OMZWorkspaceColumn_ISVISIBLE] DEFAULT ((0)) FOR [IsVisible]; GO
ALTER TABLE [dbo].[OMZWorkspaceColumn] ADD CONSTRAINT [DF_OMZWorkspaceColumn_ISTOTAL] DEFAULT ((0)) FOR [IsTotal]; GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZWorkspaceLayout ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZWorkspaceLayout] (
[WorkspaceLayoutGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[ProviderAssemblyQualifiedName] nvarchar(450) NOT NULL,
[LayoutXML] nvarchar(max) NOT NULL,
[IsFlyoutCollapsed] bit NOT NULL,
PRIMARY KEY ([WorkspaceLayoutGUID])
);
GO
ALTER TABLE [dbo].[OMZWorkspaceLayout] ADD CONSTRAINT [DF_OMZWorkspaceLayout_IsFlyoutCollapsed] DEFAULT ((0)) FOR [IsFlyoutCollapsed]; GO
ALTER TABLE [dbo].[OMZWorkspaceLayout] ADD CONSTRAINT [DF_OMZWorkspaceLayout_WORKSPACELAYOUTGUID] DEFAULT (newid()) FOR [WorkspaceLayoutGUID]; GO
ALTER TABLE [dbo].[OMZWorkspaceLayout] ADD CONSTRAINT [DF_OMZWorkspaceLayout_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[OMZWorkspaceLayout] ADD CONSTRAINT [DF_OMZWorkspaceLayout_PROVIDERASSEMBLYQUALIFIEDNAME] DEFAULT ('') FOR [ProviderAssemblyQualifiedName]; GO
ALTER TABLE [dbo].[OMZWorkspaceLayout] ADD CONSTRAINT [DF_OMZWorkspaceLayout_LAYOUTXML] DEFAULT ('') FOR [LayoutXML]; GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZWorkspacePanel ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZWorkspacePanel] (
[WorkspacePanelGUID] uniqueidentifier NOT NULL,
[WorkspaceLayoutGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
PRIMARY KEY ([WorkspacePanelGUID])
);
GO
ALTER TABLE [dbo].[OMZWorkspacePanel] ADD CONSTRAINT [FK_OMZWorkspacePanel_OMZWorkspaceLayout] FOREIGN KEY ([WorkspaceLayoutGUID]) REFERENCES [dbo].[OMZWorkspaceLayout] ([WorkspaceLayoutGUID]); GO
ALTER TABLE [dbo].[OMZWorkspacePanel] ADD CONSTRAINT [DF_OMZWorkspacePanel_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[OMZWorkspacePanel] ADD CONSTRAINT [DF_OMZWorkspacePanel_WORKSPACEPANELGUID] DEFAULT (newid()) FOR [WorkspacePanelGUID]; GO
ALTER TABLE [dbo].[OMZWorkspacePanel] ADD CONSTRAINT [DF_OMZWorkspacePanel_WORKSPACELAYOUTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkspaceLayoutGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.OMZWorkspaceTab ------------------
---------------------------------------------
CREATE TABLE [dbo].[OMZWorkspaceTab] (
[WorkspaceTabGUID] uniqueidentifier NOT NULL,
[WorkspacePanelGUID] uniqueidentifier NOT NULL,
[ViewID] nvarchar(64) NOT NULL,
[NumFrozenColumns] int NOT NULL,
[PrimarySortColumnID] nvarchar(450) NOT NULL,
[SecondarySortColumnID] nvarchar(450) NOT NULL,
[PrimarySortDirection] int NOT NULL,
[SecondarySortDirection] int NOT NULL,
PRIMARY KEY ([WorkspaceTabGUID])
);
GO
ALTER TABLE [dbo].[OMZWorkspaceTab] ADD CONSTRAINT [FK_OMZWorkspaceTab_OMZWorkspacePanel] FOREIGN KEY ([WorkspacePanelGUID]) REFERENCES [dbo].[OMZWorkspacePanel] ([WorkspacePanelGUID]); GO
ALTER TABLE [dbo].[OMZWorkspaceTab] ADD CONSTRAINT [DF_OMZWorkspaceTab_WORKSPACETABGUID] DEFAULT (newid()) FOR [WorkspaceTabGUID]; GO
ALTER TABLE [dbo].[OMZWorkspaceTab] ADD CONSTRAINT [DF_OMZWorkspaceTab_WORKSPACEPANELGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkspacePanelGUID]; GO
ALTER TABLE [dbo].[OMZWorkspaceTab] ADD CONSTRAINT [DF_OMZWorkspaceTab_VIEWID] DEFAULT ('') FOR [ViewID]; GO
ALTER TABLE [dbo].[OMZWorkspaceTab] ADD CONSTRAINT [DF_OMZWorkspaceTab_NUMFROZENCOLUMNS] DEFAULT ((0)) FOR [NumFrozenColumns]; GO
ALTER TABLE [dbo].[OMZWorkspaceTab] ADD CONSTRAINT [DF_OMZWorkspaceTab_SORTCOLUMNID] DEFAULT ('') FOR [PrimarySortColumnID]; GO
ALTER TABLE [dbo].[OMZWorkspaceTab] ADD CONSTRAINT [DF_OMZWorkspaceTab_SECONDARYSORTCOLUMNID] DEFAULT ('') FOR [SecondarySortColumnID]; GO
ALTER TABLE [dbo].[OMZWorkspaceTab] ADD CONSTRAINT [DF_OMZWorkspaceTab_PRIMARYSORTDIRECTION] DEFAULT ((0)) FOR [PrimarySortDirection]; GO
ALTER TABLE [dbo].[OMZWorkspaceTab] ADD CONSTRAINT [DF_OMZWorkspaceTab_SECONDARYSORTDIRECTION] DEFAULT ((0)) FOR [SecondarySortDirection]; GO
---------------------------------------------
---------------------------------------------
-- dbo.PHILogExtractHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[PHILogExtractHistory] (
[ExtractID] int NOT NULL,
[UserName] nvarchar(128) NOT NULL,
[DateTimeStampUtc] datetime NOT NULL,
[StartDate] datetime NOT NULL,
[EndDate] datetime NOT NULL,
[ExtractReason] nvarchar(255) NOT NULL,
[Status] tinyint NOT NULL,
PRIMARY KEY ([ExtractID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.PartitionInfo ------------------
---------------------------------------------
CREATE TABLE [dbo].[PartitionInfo] (
[DatabaseID] varchar(200) NOT NULL,
[CubeID] varchar(200) NOT NULL,
[MeasureGroupID] varchar(400) NOT NULL,
[PartitionID] varchar(400) NOT NULL,
[PartitionName] varchar(400) NOT NULL,
[QueryDefinition] varchar(4000) NOT NULL,
[Filter] varchar(2000) NULL,
[Dirty] bit NULL,
[Version] varchar(200) NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.PasswordHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[PasswordHistory] (
[HistoryID] bigint NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[HashedPassword] nvarchar(64) NOT NULL,
[Iteration] tinyint NOT NULL,
PRIMARY KEY ([HistoryID])
);
GO
ALTER TABLE [dbo].[PasswordHistory] ADD CONSTRAINT [DF_PasswordHistory_HashedPassword] DEFAULT ('') FOR [HashedPassword]; GO
ALTER TABLE [dbo].[PasswordHistory] ADD CONSTRAINT [DF_PasswordHistory_Iteration] DEFAULT ((0)) FOR [Iteration]; GO
ALTER TABLE [dbo].[PasswordHistory] ADD CONSTRAINT [DF_PasswordHistory_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanPrint ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanPrint] (
[PlanPrintGuid] uniqueidentifier NOT NULL,
[FileName] nvarchar(200) NOT NULL,
[FilePath] nvarchar(400) NOT NULL,
[DateCreated] datetime NOT NULL,
[UserGuid] uniqueidentifier NOT NULL,
[FileSize] int NOT NULL,
[PlanNames] nvarchar(max) NOT NULL,
PRIMARY KEY ([PlanPrintGuid])
);
GO
ALTER TABLE [dbo].[PlanPrint] ADD CONSTRAINT [DF__PlanPrint__PlanP__5D1B8228] DEFAULT (newid()) FOR [PlanPrintGuid]; GO
ALTER TABLE [dbo].[PlanPrint] ADD CONSTRAINT [DF__PlanPrint__FileN__5E0FA661] DEFAULT ('') FOR [FileName]; GO
ALTER TABLE [dbo].[PlanPrint] ADD CONSTRAINT [DF__PlanPrint__FileP__5F03CA9A] DEFAULT ('') FOR [FilePath]; GO
ALTER TABLE [dbo].[PlanPrint] ADD CONSTRAINT [DF__PlanPrint__DateC__5FF7EED3] DEFAULT ('') FOR [DateCreated]; GO
ALTER TABLE [dbo].[PlanPrint] ADD CONSTRAINT [DF__PlanPrint__UserG__60EC130C] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGuid]; GO
ALTER TABLE [dbo].[PlanPrint] ADD CONSTRAINT [DF__PlanPrint__FileS__61E03745] DEFAULT ((0)) FOR [FileSize]; GO
ALTER TABLE [dbo].[PlanPrint] ADD CONSTRAINT [DF__PlanPrint__PlanN__62D45B7E] DEFAULT ('') FOR [PlanNames]; GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanType ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanType] (
[PlanTypeGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(256) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[ModelDataConfigGUID] uniqueidentifier NOT NULL,
[GridTemplateGUID] uniqueidentifier NOT NULL,
[DisplayOrder] int NOT NULL,
[IsPermissionCopyEnabled] bit NOT NULL,
[NameFormFieldGUID] uniqueidentifier NOT NULL,
[WorkflowGridTemplateGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[OnSaveCustomScriptGUID] uniqueidentifier NOT NULL,
[OnSaveCustomScript2GUID] uniqueidentifier NOT NULL,
[OnTemplateChangeCustomScriptGUID] uniqueidentifier NOT NULL,
[ScoreDefaultFillInTemplateName] nvarchar(100) NOT NULL,
[DefaultMessageSubject] nvarchar(450) NOT NULL,
[FriendlyName] nvarchar(256) NOT NULL,
[OnAfterModelRefreshCustomScriptGUID] uniqueidentifier NOT NULL,
[LootIDSQLExpression] nvarchar(450) NOT NULL,
[OnCopyCustomScriptGUID] uniqueidentifier NOT NULL,
[IsSimpleRoutingSlip] bit NOT NULL,
[AssumptionInputNameFormat] nvarchar(450) NOT NULL,
[AssumptionOutputNameFormat] nvarchar(450) NOT NULL,
[OpenPlanUrl] nvarchar(100) NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[IsSavingNewWay] bit NOT NULL,
[FinancialsAlias] nvarchar(100) NOT NULL,
[AllowPublicAttachment] bit NOT NULL,
[OnModelSaveCustomScriptGUID] uniqueidentifier NOT NULL,
[DefaultModelTemplateGUID] uniqueidentifier NOT NULL,
[HelpID] nvarchar(400) NOT NULL,
[FormHelpID] nvarchar(50) NOT NULL,
[IsSystemSetFillinEditable] bit NOT NULL,
[IsModelRefreshEnabled] bit NOT NULL,
[IsBulkDeleteAllowed] bit NOT NULL,
PRIMARY KEY ([PlanTypeGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_PlanType] ON [dbo].[PlanType] ([Name]);
CREATE NONCLUSTERED INDEX [NCNU_PlanTypeGUID] ON [dbo].[PlanType] ([PlanTypeGUID]);
GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [FK_PlanType_Folder] FOREIGN KEY ([FolderGUID]) REFERENCES [dbo].[Folder] ([FolderGuid]); GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_LootIDSQLExpression] DEFAULT ('') FOR [LootIDSQLExpression]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__IsMode__14442DAF] DEFAULT ((1)) FOR [IsModelRefreshEnabled]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_dbo_PlanType_IsSystemSetFillinEditable] DEFAULT ((0)) FOR [IsSystemSetFillinEditable]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_AssumptionInputNameFormat] DEFAULT ('') FOR [AssumptionInputNameFormat]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_AssumptionOutputNameFormat] DEFAULT ('') FOR [AssumptionOutputNameFormat]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__Defaul__26D57D31] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultModelTemplateGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_DefaultMessageSubject] DEFAULT ('New Message') FOR [DefaultMessageSubject]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__AllowP__366FC20E] DEFAULT ((0)) FOR [AllowPublicAttachment]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__OnAfte__7E0E0558] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OnAfterModelRefreshCustomScriptGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_OnModelSaveCustomScriptGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OnModelSaveCustomScriptGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__IsBulk__509A0BF9] DEFAULT ((1)) FOR [IsBulkDeleteAllowed]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_OnSaveCustomScriptGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OnSaveCustomScriptGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_OnSaveCustomScriptGUID1] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OnSaveCustomScript2GUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__OpenPl__53862DD5] DEFAULT ('') FOR [OpenPlanUrl]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__Global__556E7647] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__Financ__55E212AF] DEFAULT ('') FOR [FinancialsAlias]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_IsSimpleRoutingSlip] DEFAULT ((0)) FOR [IsSimpleRoutingSlip]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_PlanTypeGUID] DEFAULT (newid()) FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_FOLDERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__FormHe__6F7BF1FD] DEFAULT ('') FOR [FormHelpID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_MODELDATACONFIGGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelDataConfigGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_GRIDTEMPLATEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GridTemplateGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_DISPLAYORDER] DEFAULT ((-1)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_OnCopyCustomScriptGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OnCopyCustomScriptGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_ISPERMISSIONCOPYENABLED] DEFAULT ((1)) FOR [IsPermissionCopyEnabled]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__HelpID__74BEFEB0] DEFAULT ('') FOR [HelpID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF__PlanType__IsSavi__74C42A7D] DEFAULT ((0)) FOR [IsSavingNewWay]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_NAMEFORMFIELDGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [NameFormFieldGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_WorkflowGridTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkflowGridTemplateGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_ScoreDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_ScoreDefaultFillInTemplateName] DEFAULT ('') FOR [ScoreDefaultFillInTemplateName]; GO
ALTER TABLE [dbo].[PlanType] ADD CONSTRAINT [DF_PlanType_OnTemplateChangeCustomScriptGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OnTemplateChangeCustomScriptGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanTypeCalculatedFieldLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanTypeCalculatedFieldLink] (
[PlanTypeGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PlanTypeGUID], [FormFieldGUID])
);
GO
ALTER TABLE [dbo].[PlanTypeCalculatedFieldLink] ADD CONSTRAINT [FK_PlanTypeCalculatedFieldLink_FEFormField] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FEFormField] ([FORMFIELDGUID]); GO
ALTER TABLE [dbo].[PlanTypeCalculatedFieldLink] ADD CONSTRAINT [FK_PlanTypeCalculatedFieldLink_PlanType] FOREIGN KEY ([PlanTypeGUID]) REFERENCES [dbo].[PlanType] ([PlanTypeGUID]); GO
ALTER TABLE [dbo].[PlanTypeCalculatedFieldLink] ADD CONSTRAINT [DF_PlanTypeCalculatedFieldLink_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[PlanTypeCalculatedFieldLink] ADD CONSTRAINT [DF_PlanTypeCalculatedFieldLink_FormFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormFieldGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanTypeFormDefLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanTypeFormDefLink] (
[PlanTypeGUID] uniqueidentifier NOT NULL,
[FormDefGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PlanTypeGUID], [FormDefGUID])
);
GO
ALTER TABLE [dbo].[PlanTypeFormDefLink] ADD CONSTRAINT [FK_PlanTypeFormDefLink_PlanType1] FOREIGN KEY ([PlanTypeGUID]) REFERENCES [dbo].[PlanType] ([PlanTypeGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanTypeGridFieldLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanTypeGridFieldLink] (
[PlanTypeGUID] uniqueidentifier NOT NULL,
[FormFieldGUID] uniqueidentifier NOT NULL,
[IsFullTextSearchField] bit NOT NULL,
PRIMARY KEY ([PlanTypeGUID], [FormFieldGUID])
);
GO
ALTER TABLE [dbo].[PlanTypeGridFieldLink] ADD CONSTRAINT [FK_PlanTypeGridFieldLink_FEFormField] FOREIGN KEY ([FormFieldGUID]) REFERENCES [dbo].[FEFormField] ([FORMFIELDGUID]); GO
ALTER TABLE [dbo].[PlanTypeGridFieldLink] ADD CONSTRAINT [FK_PlanTypeGridFieldLink_PlanType] FOREIGN KEY ([PlanTypeGUID]) REFERENCES [dbo].[PlanType] ([PlanTypeGUID]); GO
ALTER TABLE [dbo].[PlanTypeGridFieldLink] ADD CONSTRAINT [DF_PlanTypeGridFieldLink_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[PlanTypeGridFieldLink] ADD CONSTRAINT [DF_PlanTypeGridFieldLink_FormFieldGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormFieldGUID]; GO
ALTER TABLE [dbo].[PlanTypeGridFieldLink] ADD CONSTRAINT [DF_PlanTypeGridFieldLink_IsFullTextSearchField] DEFAULT ((0)) FOR [IsFullTextSearchField]; GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanTypeModelDataConfigLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanTypeModelDataConfigLink] (
[PlanTypeGUID] uniqueidentifier NOT NULL,
[ModelDataConfigGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PlanTypeGUID], [ModelDataConfigGUID])
);
GO
ALTER TABLE [dbo].[PlanTypeModelDataConfigLink] ADD CONSTRAINT [FK_PlanTypeModelDataConfigLink_EMFModelDataConfig] FOREIGN KEY ([ModelDataConfigGUID]) REFERENCES [dbo].[EMFModelDataConfig] ([ModelDataConfigGUID]); GO
ALTER TABLE [dbo].[PlanTypeModelDataConfigLink] ADD CONSTRAINT [FK_PlanTypeModelDataConfigLink_PlanType] FOREIGN KEY ([PlanTypeGUID]) REFERENCES [dbo].[PlanType] ([PlanTypeGUID]); GO
ALTER TABLE [dbo].[PlanTypeModelDataConfigLink] ADD CONSTRAINT [DF_PlanTypeModelDataConfigLink_PlanTypeGUID] DEFAULT (newid()) FOR [PlanTypeGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanTypeModelTemplateLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanTypeModelTemplateLink] (
[PlanTypeGUID] uniqueidentifier NOT NULL,
[ModelTemplateGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PlanTypeGUID], [ModelTemplateGUID])
);
GO
ALTER TABLE [dbo].[PlanTypeModelTemplateLink] ADD CONSTRAINT [FK_PlanTypeModelTemplateLink_ModelTemplate] FOREIGN KEY ([ModelTemplateGUID]) REFERENCES [dbo].[EMFModelTemplate] ([ModelTemplateGUID]); GO
ALTER TABLE [dbo].[PlanTypeModelTemplateLink] ADD CONSTRAINT [FK_PlanTypeModelTemplateLink_PlanTypeGUID] FOREIGN KEY ([PlanTypeGUID]) REFERENCES [dbo].[PlanType] ([PlanTypeGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanTypePHSectionLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanTypePHSectionLink] (
[PlanTypeGUID] uniqueidentifier NOT NULL,
[PlaceholderSectionMemberGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PlanTypeGUID], [PlaceholderSectionMemberGUID])
);
GO
ALTER TABLE [dbo].[PlanTypePHSectionLink] ADD CONSTRAINT [FK_PlanTypePHSectionLink_PlanType] FOREIGN KEY ([PlanTypeGUID]) REFERENCES [dbo].[PlanType] ([PlanTypeGUID]); GO
ALTER TABLE [dbo].[PlanTypePHSectionLink] ADD CONSTRAINT [DF_PlanTypePHSectionLink_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[PlanTypePHSectionLink] ADD CONSTRAINT [DF_PlanTypePHSectionLink_PlaceholderSectionMemberGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlaceholderSectionMemberGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanTypeReportLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanTypeReportLink] (
[PlanTypeGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PlanTypeGUID], [ReportGUID])
);
GO
ALTER TABLE [dbo].[PlanTypeReportLink] ADD CONSTRAINT [FK_PlanTypeReportLink_PlanType] FOREIGN KEY ([PlanTypeGUID]) REFERENCES [dbo].[PlanType] ([PlanTypeGUID]); GO
ALTER TABLE [dbo].[PlanTypeReportLink] ADD CONSTRAINT [FK_PlanTypeReportLink_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[PlanTypeReportLink] ADD CONSTRAINT [DF_PlanTypeReportLink_PLANTYPEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[PlanTypeReportLink] ADD CONSTRAINT [DF_PlanTypeReportLink_REPORTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.PlanTypeWorkflowMapLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[PlanTypeWorkflowMapLink] (
[PlanTypeGUID] uniqueidentifier NOT NULL,
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[IsRequiredWorkflow] bit NOT NULL,
PRIMARY KEY ([PlanTypeGUID], [WorkflowMapGUID])
);
GO
ALTER TABLE [dbo].[PlanTypeWorkflowMapLink] ADD CONSTRAINT [FK_PlanTypeWorkflowMapLink_PlanType] FOREIGN KEY ([PlanTypeGUID]) REFERENCES [dbo].[PlanType] ([PlanTypeGUID]); GO
ALTER TABLE [dbo].[PlanTypeWorkflowMapLink] ADD CONSTRAINT [FK_PlanTypeWorkflowMapLink_WFWorkflowMap] FOREIGN KEY ([WorkflowMapGUID]) REFERENCES [dbo].[WFWorkflowMap] ([WorkflowMapGUID]); GO
ALTER TABLE [dbo].[PlanTypeWorkflowMapLink] ADD CONSTRAINT [DF_PlanTypeWorkflowMapLink_ISREQUIREDWORKFLOW] DEFAULT ((0)) FOR [IsRequiredWorkflow]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RECachedReport ------------------
---------------------------------------------
CREATE TABLE [dbo].[RECachedReport] (
[CachedReportGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[Identifier] nvarchar(4000) NOT NULL,
[CachedDataType] int NOT NULL,
[LastRefreshDate] datetime NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[ReportMetaData] nvarchar(max) NOT NULL,
PRIMARY KEY ([CachedReportGUID])
);
GO
ALTER TABLE [dbo].[RECachedReport] ADD CONSTRAINT [FK_RECachedReport_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[RECachedReport] ADD CONSTRAINT [DF_CachedReport_CachedReportGUID] DEFAULT (newid()) FOR [CachedReportGUID]; GO
ALTER TABLE [dbo].[RECachedReport] ADD CONSTRAINT [DF_RECachedReport_Parameters] DEFAULT ('') FOR [Identifier]; GO
ALTER TABLE [dbo].[RECachedReport] ADD CONSTRAINT [DF_RECachedReport_CACHEDDATATYPE] DEFAULT ((0)) FOR [CachedDataType]; GO
ALTER TABLE [dbo].[RECachedReport] ADD CONSTRAINT [DF_RECachedReport_LastRefreshDate] DEFAULT (getdate()) FOR [LastRefreshDate]; GO
ALTER TABLE [dbo].[RECachedReport] ADD CONSTRAINT [DF_RECachedReport_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[RECachedReport] ADD CONSTRAINT [DF_RECachedReport_ReportMetaData] DEFAULT ('') FOR [ReportMetaData]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportCalculation ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportCalculation] (
[ClientReportCalculationGUID] uniqueidentifier NOT NULL,
[ClientReportSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(1000) NULL,
[DisplayOrder] int NOT NULL,
[CalculationAssemblyQualifiedName] nvarchar(400) NOT NULL,
[CalculationXML] nvarchar(max) NOT NULL,
[DetailReportGUID] uniqueidentifier NOT NULL,
[DisplayFormat] nvarchar(max) NOT NULL,
[ColumnWidth] int NOT NULL,
[IsAttributeMember] bit NOT NULL,
[CSSClass] nvarchar(100) NOT NULL,
[DetailReportGUIDsCSV] nvarchar(2000) NOT NULL,
[IsColumnCalculationTakePrecedent] bit NOT NULL,
PRIMARY KEY ([ClientReportCalculationGUID])
);
GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [FK__REClientR__Clien__590B61E5] FOREIGN KEY ([ClientReportSectionGUID]) REFERENCES [dbo].[REClientReportSection] ([ClientReportSectionGUID]); GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__Displ__17C7AE6D] DEFAULT ('') FOR [DisplayFormat]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__Colum__18BBD2A6] DEFAULT ((0)) FOR [ColumnWidth]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__CSSCl__34C4AB25] DEFAULT ('') FOR [CSSClass]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__Detai__3C66CA0E] DEFAULT ('') FOR [DetailReportGUIDsCSV]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__Clien__58173DAC] DEFAULT (newid()) FOR [ClientReportCalculationGUID]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientRe__Name__59FF861E] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__Detai__5ABEA02D] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DetailReportGUID]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__Displ__5AF3AA57] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__Calcu__5BE7CE90] DEFAULT ('') FOR [CalculationAssemblyQualifiedName]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__IsAtt__5C71DE75] DEFAULT ((0)) FOR [IsAttributeMember]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__Calcu__5CDBF2C9] DEFAULT ('') FOR [CalculationXML]; GO
ALTER TABLE [dbo].[REClientReportCalculation] ADD CONSTRAINT [DF__REClientR__IsCol__641F1C20] DEFAULT ((0)) FOR [IsColumnCalculationTakePrecedent]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportConditionalFormat ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportConditionalFormat] (
[ClientReportConditionalFormatGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[ColumnTupleInfoXML] nvarchar(max) NOT NULL,
[OperatorValue] int NOT NULL,
[ValueToCompareAsString] nvarchar(1000) NOT NULL,
[CSSClass] nvarchar(100) NOT NULL,
[DisplayOrder] int NOT NULL,
[Comment] nvarchar(4000) NOT NULL,
PRIMARY KEY ([ClientReportConditionalFormatGUID])
);
GO
ALTER TABLE [dbo].[REClientReportConditionalFormat] ADD CONSTRAINT [FK__REClientR__Repor__1E74ABFC] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REClientReportConditionalFormat] ADD CONSTRAINT [DF__REClientR__Clien__1D8087C3] DEFAULT (newid()) FOR [ClientReportConditionalFormatGUID]; GO
ALTER TABLE [dbo].[REClientReportConditionalFormat] ADD CONSTRAINT [DF__REClientR__Colum__1F68D035] DEFAULT ('') FOR [ColumnTupleInfoXML]; GO
ALTER TABLE [dbo].[REClientReportConditionalFormat] ADD CONSTRAINT [DF__REClientR__Opera__205CF46E] DEFAULT ((0)) FOR [OperatorValue]; GO
ALTER TABLE [dbo].[REClientReportConditionalFormat] ADD CONSTRAINT [DF__REClientR__Value__215118A7] DEFAULT ('') FOR [ValueToCompareAsString]; GO
ALTER TABLE [dbo].[REClientReportConditionalFormat] ADD CONSTRAINT [DF__REClientR__CSSCl__22453CE0] DEFAULT ('') FOR [CSSClass]; GO
ALTER TABLE [dbo].[REClientReportConditionalFormat] ADD CONSTRAINT [DF__REClientR__Displ__23396119] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REClientReportConditionalFormat] ADD CONSTRAINT [DF__REClientR__Comme__2521A98B] DEFAULT ('') FOR [Comment]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportDataSourceLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportDataSourceLink] (
[ReportGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[ProviderAssemblyQualifiedName] nvarchar(450) NOT NULL,
[IsDefault] bit NOT NULL,
PRIMARY KEY ([ReportGUID], [DataSourceGUID])
);
GO
ALTER TABLE [dbo].[REClientReportDataSourceLink] ADD CONSTRAINT [FK__REClientR__Repor__0E9CA038] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REClientReportDataSourceLink] ADD CONSTRAINT [DF__REClientR__Provi__1084E8AA] DEFAULT ('') FOR [ProviderAssemblyQualifiedName]; GO
ALTER TABLE [dbo].[REClientReportDataSourceLink] ADD CONSTRAINT [DF__REClientR__DataS__0F90C471] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataSourceGUID]; GO
ALTER TABLE [dbo].[REClientReportDataSourceLink] ADD CONSTRAINT [DF__REClientR__IsDef__775ADEDB] DEFAULT ((0)) FOR [IsDefault]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportParameter] (
[ClientReportParameterGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[ClientReportSectionItemGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[ColumnName] nvarchar(150) NOT NULL,
[SourceTypeValue] int NOT NULL,
[IsUserEditable] bit NOT NULL,
[DisplayOrder] int NOT NULL,
[ParameterXML] nvarchar(max) NOT NULL,
[DimensionID] nvarchar(100) NOT NULL,
[AttributeID] nvarchar(100) NOT NULL,
[MeasureID] nvarchar(100) NOT NULL,
[ParameterValueAQN] nvarchar(400) NOT NULL,
[ClientReportParameterGroupGUID] uniqueidentifier NOT NULL,
[IsExpandingColumns] bit NOT NULL,
[HierarchyID] nvarchar(100) NOT NULL,
PRIMARY KEY ([ClientReportParameterGUID])
);
GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [FK__REClientR__Repor__49C91E55] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Dimen__02CC9187] DEFAULT ('') FOR [DimensionID]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Attri__111AB0DE] DEFAULT ('') FOR [AttributeID]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Measu__120ED517] DEFAULT ('') FOR [MeasureID]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF_REClientReportParameter_HierarchyID] DEFAULT ('') FOR [HierarchyID]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Clien__48D4FA1C] DEFAULT (newid()) FOR [ClientReportParameterGUID]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientRe__Name__4BB166C7] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Sourc__4CA58B00] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Sourc__4D99AF39] DEFAULT ((0)) FOR [SourceTypeValue]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__IsUse__4E8DD372] DEFAULT ((0)) FOR [IsUserEditable]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Displ__4F81F7AB] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF_REClientReportParameter_IsExpandingColumns] DEFAULT ((0)) FOR [IsExpandingColumns]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Param__50761BE4] DEFAULT ('') FOR [ParameterXML]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Param__53EEAB7B] DEFAULT ('') FOR [ParameterValueAQN]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Clien__678D2682] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ClientReportParameterGroupGUID]; GO
ALTER TABLE [dbo].[REClientReportParameter] ADD CONSTRAINT [DF__REClientR__Clien__4ABD428E] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ClientReportSectionItemGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportParameterGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportParameterGroup] (
[ClientReportParameterGroupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[IsMerged] bit NOT NULL,
PRIMARY KEY ([ClientReportParameterGroupGUID])
);
GO
ALTER TABLE [dbo].[REClientReportParameterGroup] ADD CONSTRAINT [FK__REClientR__Repor__14FEEB77] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REClientReportParameterGroup] ADD CONSTRAINT [DF__REClientR__Clien__140AC73E] DEFAULT (newid()) FOR [ClientReportParameterGroupGUID]; GO
ALTER TABLE [dbo].[REClientReportParameterGroup] ADD CONSTRAINT [DF__REClientRe__Name__15F30FB0] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REClientReportParameterGroup] ADD CONSTRAINT [DF__REClientR__IsMer__16E733E9] DEFAULT ((0)) FOR [IsMerged]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportSection] (
[ClientReportSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[DisplayLabel] nvarchar(100) NOT NULL,
[IsTemplate] bit NOT NULL,
[ShowSectionLabel] bit NOT NULL,
[ShowGrandTotal] bit NOT NULL,
[IsAutoNameFilter] bit NOT NULL,
[IsMergingRepeatHeader] bit NOT NULL,
[IsHidden] bit NOT NULL,
[ShowMargin] bit NOT NULL,
[IsTimeRelative] bit NOT NULL,
PRIMARY KEY ([ClientReportSectionGUID])
);
GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF_REClientReportSection_ShowSectionLabel] DEFAULT ((0)) FOR [ShowSectionLabel]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF_REClientReportSection_ShowGrandTotal] DEFAULT ((0)) FOR [ShowGrandTotal]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF__REClientR__IsHid__113187EF] DEFAULT ((0)) FOR [IsHidden]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF__REClientR__Clien__2C38BB6E] DEFAULT (newid()) FOR [ClientReportSectionGUID]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF__REClientRe__Name__2D2CDFA7] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF__REClientR__Displ__2E2103E0] DEFAULT ('') FOR [DisplayLabel]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF__REClientR__IsTem__30094C52] DEFAULT ((0)) FOR [IsTemplate]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF__REClientR__IsTim__3FF3035A] DEFAULT ((0)) FOR [IsTimeRelative]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF__REClientR__ShowM__4AEABEE6] DEFAULT ((1)) FOR [ShowMargin]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF__REClientR__IsAut__5D6602AE] DEFAULT ((0)) FOR [IsAutoNameFilter]; GO
ALTER TABLE [dbo].[REClientReportSection] ADD CONSTRAINT [DF__REClientR__IsMer__6C51DB9F] DEFAULT ((1)) FOR [IsMergingRepeatHeader]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportSectionAttribute ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportSectionAttribute] (
[ClientReportSectionAttributeGUID] uniqueidentifier NOT NULL,
[ClientReportSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[ColumnName] nvarchar(200) NOT NULL,
[AttributeID] nvarchar(200) NOT NULL,
[DimensionID] nvarchar(200) NOT NULL,
[HierarchyID] nvarchar(200) NOT NULL,
[HierarchyNameCached] nvarchar(100) NOT NULL,
[DrilldownStatusValue] int NOT NULL,
[DisplayOrder] int NOT NULL,
[VisibilityStatusValue] int NOT NULL,
[ColumnWidth] int NOT NULL,
[DetailReportGUID] uniqueidentifier NOT NULL,
[FilterMemberCSV] nvarchar(max) NOT NULL,
[SortOrderValue] int NOT NULL,
[ShowSubtotal] bit NOT NULL,
[DetailReportGUIDsCSV] nvarchar(2000) NOT NULL,
PRIMARY KEY ([ClientReportSectionAttributeGUID])
);
GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [FK__REClientR__Clien__74B37C5A] FOREIGN KEY ([ClientReportSectionGUID]) REFERENCES [dbo].[REClientReportSection] ([ClientReportSectionGUID]); GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Visib__227A470A] DEFAULT ((0)) FOR [VisibilityStatusValue]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Colum__236E6B43] DEFAULT ((0)) FOR [ColumnWidth]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Detai__3A7E819C] DEFAULT ('') FOR [DetailReportGUIDsCSV]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Detai__58D657BB] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DetailReportGUID]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Filte__5CA6E89F] DEFAULT ('') FOR [FilterMemberCSV]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__SortO__6353E62E] DEFAULT ((-1)) FOR [SortOrderValue]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__ShowS__6D45FFD8] DEFAULT ((0)) FOR [ShowSubtotal]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Clien__73BF5821] DEFAULT (newid()) FOR [ClientReportSectionAttributeGUID]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientRe__Name__75A7A093] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Colum__769BC4CC] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Attri__778FE905] DEFAULT ('') FOR [AttributeID]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Dimen__78840D3E] DEFAULT ('') FOR [DimensionID]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Hiera__79783177] DEFAULT ('') FOR [HierarchyID]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Hiera__7A6C55B0] DEFAULT ('') FOR [HierarchyNameCached]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Drill__7B6079E9] DEFAULT ((0)) FOR [DrilldownStatusValue]; GO
ALTER TABLE [dbo].[REClientReportSectionAttribute] ADD CONSTRAINT [DF__REClientR__Displ__7D48C25B] DEFAULT ((0)) FOR [DisplayOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportSectionLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportSectionLink] (
[ClientReportSectionLinkGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[ClientReportSectionGUID] uniqueidentifier NOT NULL,
[DisplayOrder] int NOT NULL,
[IsOnColumn] bit NOT NULL,
PRIMARY KEY ([ClientReportSectionLinkGUID])
);
GO
ALTER TABLE [dbo].[REClientReportSectionLink] ADD CONSTRAINT [FK__REClientR__Clien__36B649E1] FOREIGN KEY ([ClientReportSectionGUID]) REFERENCES [dbo].[REClientReportSection] ([ClientReportSectionGUID]); GO
ALTER TABLE [dbo].[REClientReportSectionLink] ADD CONSTRAINT [FK__REClientR__Repor__35C225A8] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REClientReportSectionLink] ADD CONSTRAINT [DF__REClientR__Clien__34CE016F] DEFAULT (newid()) FOR [ClientReportSectionLinkGUID]; GO
ALTER TABLE [dbo].[REClientReportSectionLink] ADD CONSTRAINT [DF__REClientR__Displ__37AA6E1A] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REClientReportSectionLink] ADD CONSTRAINT [DF__REClientR__IsOnC__389E9253] DEFAULT ((0)) FOR [IsOnColumn]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportSectionMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportSectionMeasure] (
[ClientReportSectionMeasureGUID] uniqueidentifier NOT NULL,
[ClientReportSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[MeasureID] nvarchar(100) NOT NULL,
[DisplayFormatCached] nvarchar(100) NOT NULL,
[DisplayOrder] int NOT NULL,
[ColumnWidth] int NOT NULL,
[DetailReportGUID] uniqueidentifier NOT NULL,
[LinkedSectionGUIDsCSV] nvarchar(max) NOT NULL,
[DetailReportGUIDsCSV] nvarchar(2000) NOT NULL,
[AggregationType] tinyint NOT NULL,
PRIMARY KEY ([ClientReportSectionMeasureGUID])
);
GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [FK__REClientR__Clien__03019BB1] FOREIGN KEY ([ClientReportSectionGUID]) REFERENCES [dbo].[REClientReportSection] ([ClientReportSectionGUID]); GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientR__Clien__020D7778] DEFAULT (newid()) FOR [ClientReportSectionMeasureGUID]; GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientRe__Name__03F5BFEA] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientR__Measu__04E9E423] DEFAULT ('') FOR [MeasureID]; GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientR__Displ__05DE085C] DEFAULT ('') FOR [DisplayFormatCached]; GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientR__Displ__06D22C95] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientR__Linke__16D38A34] DEFAULT ('') FOR [LinkedSectionGUIDsCSV]; GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientR__Colum__24628F7C] DEFAULT ((0)) FOR [ColumnWidth]; GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientR__Detai__3B72A5D5] DEFAULT ('') FOR [DetailReportGUIDsCSV]; GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientR__Aggre__3D0580C9] DEFAULT ((0)) FOR [AggregationType]; GO
ALTER TABLE [dbo].[REClientReportSectionMeasure] ADD CONSTRAINT [DF__REClientR__Detai__59CA7BF4] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DetailReportGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REClientReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[REClientReportSetup] (
[ClientReportSetupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[LaunchMode] int NOT NULL,
[IsDrilldownIndented] bit NOT NULL,
[Style] nvarchar(100) NOT NULL,
[IsAutoRefresh] bit NOT NULL,
[SortArgsXML] nvarchar(max) NOT NULL,
[IsTitleVisible] bit NOT NULL,
[HideEmptyData] bit NOT NULL,
[HasPHIData] bit NOT NULL,
[IsPaneFrozen] bit NOT NULL,
[IsExcelOnly] bit NOT NULL,
[IsAutoHidingRows] bit NOT NULL,
[ChartConfigJSON] nvarchar(max) NOT NULL,
[ChartConfigAQN] nvarchar(max) NOT NULL,
PRIMARY KEY ([ClientReportSetupGUID])
);
GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [FK__REClientR__Repor__0BC0338D] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__Clien__0ACC0F54] DEFAULT (newid()) FOR [ClientReportSetupGUID]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__Launc__0CB457C6] DEFAULT ((0)) FOR [LaunchMode]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF_REClientReportSetup_IsAutoHidingRows] DEFAULT ((0)) FOR [IsAutoHidingRows]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__IsAut__0F32686C] DEFAULT ((0)) FOR [IsAutoRefresh]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__SortA__1302F950] DEFAULT ('') FOR [SortArgsXML]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__Chart__162C7621] DEFAULT ('') FOR [ChartConfigJSON]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__Chart__17209A5A] DEFAULT ('') FOR [ChartConfigAQN]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__IsDri__2091FE98] DEFAULT ((0)) FOR [IsDrilldownIndented]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__Style__218622D1] DEFAULT ('') FOR [Style]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF_REClientReportSetup_IsTitleVisible] DEFAULT ((0)) FOR [IsTitleVisible]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__HideE__2866C5A6] DEFAULT ((0)) FOR [HideEmptyData]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__IsExc__4133A25B] DEFAULT ((0)) FOR [IsExcelOnly]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__HasPH__5E542FC3] DEFAULT ((0)) FOR [HasPHIData]; GO
ALTER TABLE [dbo].[REClientReportSetup] ADD CONSTRAINT [DF__REClientR__IsPan__7FF153C7] DEFAULT ((0)) FOR [IsPaneFrozen]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RECubeReportDimension ------------------
---------------------------------------------
CREATE TABLE [dbo].[RECubeReportDimension] (
[CubeReportDimensionGUID] uniqueidentifier NOT NULL,
[CubeReportSetupGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[HierarchyID] nvarchar(400) NOT NULL,
[DimensionType] int NOT NULL,
[IsConsolidatable] bit NOT NULL,
[IsOnColumn] bit NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([CubeReportDimensionGUID])
);
GO
ALTER TABLE [dbo].[RECubeReportDimension] ADD CONSTRAINT [FK_CubeReportDimension_CubeReportSetup] FOREIGN KEY ([CubeReportSetupGUID]) REFERENCES [dbo].[RECubeReportSetup] ([CubeReportSetupGUID]); GO
ALTER TABLE [dbo].[RECubeReportDimension] ADD CONSTRAINT [DF_CubeReportDimension_CubeReportDimensionGUID] DEFAULT (newid()) FOR [CubeReportDimensionGUID]; GO
ALTER TABLE [dbo].[RECubeReportDimension] ADD CONSTRAINT [DF_CubeReportDimension_CubeReportSetupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeReportSetupGUID]; GO
ALTER TABLE [dbo].[RECubeReportDimension] ADD CONSTRAINT [DF_CubeReportDimension_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[RECubeReportDimension] ADD CONSTRAINT [DF_CubeReportDimension_HierarchyID] DEFAULT ('') FOR [HierarchyID]; GO
ALTER TABLE [dbo].[RECubeReportDimension] ADD CONSTRAINT [DF_CubeReportDimension_DimensionType] DEFAULT ((0)) FOR [DimensionType]; GO
ALTER TABLE [dbo].[RECubeReportDimension] ADD CONSTRAINT [DF_CubeReportDimension_IsConsolidatable] DEFAULT ((0)) FOR [IsConsolidatable]; GO
ALTER TABLE [dbo].[RECubeReportDimension] ADD CONSTRAINT [DF_CubeReportDimension_IsOnColumn] DEFAULT ((0)) FOR [IsOnColumn]; GO
ALTER TABLE [dbo].[RECubeReportDimension] ADD CONSTRAINT [DF_CubeReportDimension_DisplayOrder] DEFAULT ((-1)) FOR [DisplayOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RECubeReportLevel ------------------
---------------------------------------------
CREATE TABLE [dbo].[RECubeReportLevel] (
[CubeReportLevelGUID] uniqueidentifier NOT NULL,
[CubeReportDimensionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[LevelID] nvarchar(400) NOT NULL,
[LevelIndex] int NOT NULL,
[IsConsolidated] bit NOT NULL,
[MDXName] nvarchar(400) NOT NULL,
PRIMARY KEY ([CubeReportLevelGUID])
);
GO
ALTER TABLE [dbo].[RECubeReportLevel] ADD CONSTRAINT [FK_CubeReportLevel_CubeReportDimension] FOREIGN KEY ([CubeReportDimensionGUID]) REFERENCES [dbo].[RECubeReportDimension] ([CubeReportDimensionGUID]); GO
ALTER TABLE [dbo].[RECubeReportLevel] ADD CONSTRAINT [DF_CubeReportLevel_CubeReportLevelGUID] DEFAULT (newid()) FOR [CubeReportLevelGUID]; GO
ALTER TABLE [dbo].[RECubeReportLevel] ADD CONSTRAINT [DF_CubeReportLevel_CubeReportSetupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeReportDimensionGUID]; GO
ALTER TABLE [dbo].[RECubeReportLevel] ADD CONSTRAINT [DF_CubeReportLevel_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[RECubeReportLevel] ADD CONSTRAINT [DF_CubeReportLevel_LevelID] DEFAULT ('') FOR [LevelID]; GO
ALTER TABLE [dbo].[RECubeReportLevel] ADD CONSTRAINT [DF_CubeReportLevel_LevelIndex] DEFAULT ((-1)) FOR [LevelIndex]; GO
ALTER TABLE [dbo].[RECubeReportLevel] ADD CONSTRAINT [DF_CubeReportLevel_IsConsolidated] DEFAULT ((0)) FOR [IsConsolidated]; GO
ALTER TABLE [dbo].[RECubeReportLevel] ADD CONSTRAINT [DF_CubeReportLevel_MDXName] DEFAULT ('') FOR [MDXName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RECubeReportMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[RECubeReportMeasure] (
[CubeReportMeasureGUID] uniqueidentifier NOT NULL,
[CubeReportSetupGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[MeasureID] nvarchar(400) NOT NULL,
[MDXName] nvarchar(400) NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([CubeReportMeasureGUID])
);
GO
ALTER TABLE [dbo].[RECubeReportMeasure] ADD CONSTRAINT [FK_CubeReportMeasure_CubeReportSetup] FOREIGN KEY ([CubeReportSetupGUID]) REFERENCES [dbo].[RECubeReportSetup] ([CubeReportSetupGUID]); GO
ALTER TABLE [dbo].[RECubeReportMeasure] ADD CONSTRAINT [DF_CubeReportMeasure_CubeReportMeasureGUID] DEFAULT (newid()) FOR [CubeReportMeasureGUID]; GO
ALTER TABLE [dbo].[RECubeReportMeasure] ADD CONSTRAINT [DF_CubeReportMeasure_CubeReportSetupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeReportSetupGUID]; GO
ALTER TABLE [dbo].[RECubeReportMeasure] ADD CONSTRAINT [DF_CubeReportMeasure_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[RECubeReportMeasure] ADD CONSTRAINT [DF_CubeReportMeasure_MeasureID] DEFAULT ('') FOR [MeasureID]; GO
ALTER TABLE [dbo].[RECubeReportMeasure] ADD CONSTRAINT [DF_CubeReportMeasure_MDXName] DEFAULT ('') FOR [MDXName]; GO
ALTER TABLE [dbo].[RECubeReportMeasure] ADD CONSTRAINT [DF_CubeReportMeasure_DisplayOrder] DEFAULT ((-1)) FOR [DisplayOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RECubeReportParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[RECubeReportParameter] (
[CubeReportParameterGUID] uniqueidentifier NOT NULL,
[CubeReportSetupGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[HierarchyID] nvarchar(400) NOT NULL,
[IsEditable] bit NOT NULL,
[MemberIDs] nvarchar(max) NOT NULL,
[MemberNames] nvarchar(max) NOT NULL,
PRIMARY KEY ([CubeReportParameterGUID])
);
GO
ALTER TABLE [dbo].[RECubeReportParameter] ADD CONSTRAINT [FK_CubeReportParameter_CubeReportSetup] FOREIGN KEY ([CubeReportSetupGUID]) REFERENCES [dbo].[RECubeReportSetup] ([CubeReportSetupGUID]); GO
ALTER TABLE [dbo].[RECubeReportParameter] ADD CONSTRAINT [DF_CubeReportParameter_CubeReportParameterGUID] DEFAULT (newid()) FOR [CubeReportParameterGUID]; GO
ALTER TABLE [dbo].[RECubeReportParameter] ADD CONSTRAINT [DF_CubeReportParameter_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CubeReportSetupGUID]; GO
ALTER TABLE [dbo].[RECubeReportParameter] ADD CONSTRAINT [DF_CubeReportParameter_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[RECubeReportParameter] ADD CONSTRAINT [DF_CubeReportParameter_HierarchyID] DEFAULT ('') FOR [HierarchyID]; GO
ALTER TABLE [dbo].[RECubeReportParameter] ADD CONSTRAINT [DF_CubeReportParameter_IsEditable] DEFAULT ((1)) FOR [IsEditable]; GO
ALTER TABLE [dbo].[RECubeReportParameter] ADD CONSTRAINT [DF_CubeReportParameter_MemberIDs] DEFAULT ('') FOR [MemberIDs]; GO
ALTER TABLE [dbo].[RECubeReportParameter] ADD CONSTRAINT [DF_CubeReportParameter_MemberNames] DEFAULT ('') FOR [MemberNames]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RECubeReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[RECubeReportSetup] (
[CubeReportSetupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[CubeName] nvarchar(64) NOT NULL,
[IsNonEmptyColumns] bit NOT NULL,
[IsNonEmptyRows] bit NOT NULL,
[IsShowingTotal] bit NOT NULL,
[IsUsingMDXOverride] bit NOT NULL,
[MDXOverride] nvarchar(max) NOT NULL,
PRIMARY KEY ([CubeReportSetupGUID])
);
GO
ALTER TABLE [dbo].[RECubeReportSetup] ADD CONSTRAINT [FK_RECubeReportSetup_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[RECubeReportSetup] ADD CONSTRAINT [DF_CubeReportSetup_CubeReportSetupGUID] DEFAULT (newid()) FOR [CubeReportSetupGUID]; GO
ALTER TABLE [dbo].[RECubeReportSetup] ADD CONSTRAINT [DF_CubeReportSetup_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[RECubeReportSetup] ADD CONSTRAINT [DF_CubeReportSetup_CubeName] DEFAULT ('') FOR [CubeName]; GO
ALTER TABLE [dbo].[RECubeReportSetup] ADD CONSTRAINT [DF_CubeReportSetup_IsNonEmptyColumns] DEFAULT ((0)) FOR [IsNonEmptyColumns]; GO
ALTER TABLE [dbo].[RECubeReportSetup] ADD CONSTRAINT [DF_CubeReportSetup_IsNonEmptyRows] DEFAULT ((0)) FOR [IsNonEmptyRows]; GO
ALTER TABLE [dbo].[RECubeReportSetup] ADD CONSTRAINT [DF_CubeReportSetup_IsShowingTotal] DEFAULT ((1)) FOR [IsShowingTotal]; GO
ALTER TABLE [dbo].[RECubeReportSetup] ADD CONSTRAINT [DF_RECubeReportSetup_IsUsingMDXOverride] DEFAULT ((0)) FOR [IsUsingMDXOverride]; GO
ALTER TABLE [dbo].[RECubeReportSetup] ADD CONSTRAINT [DF_RECubeReportSetup_MDXOverride] DEFAULT ('') FOR [MDXOverride]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportCalculation ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportCalculation] (
[DSCubeReportCalculationGUID] uniqueidentifier NOT NULL,
[DSCubeReportSectionGUID] uniqueidentifier NULL,
[Name] nvarchar(1000) NULL,
[DisplayOrder] int NOT NULL,
[CalculationAssemblyQualifiedName] nvarchar(400) NOT NULL,
[CalculationXML] nvarchar(max) NOT NULL,
[DetailReportGUID] uniqueidentifier NOT NULL,
[DisplayFormat] nvarchar(max) NOT NULL,
[ColumnWidth] int NOT NULL,
[IsAttributeMember] bit NOT NULL,
[CSSClass] nvarchar(100) NOT NULL,
[DetailReportGUIDsCSV] nvarchar(2000) NOT NULL,
[IsColumnCalculationTakePrecedent] bit NOT NULL,
PRIMARY KEY ([DSCubeReportCalculationGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [FK__REDSCubeR__DSCub__1789E357] FOREIGN KEY ([DSCubeReportSectionGUID]) REFERENCES [dbo].[REDSCubeReportSection] ([DSCubeReportSectionGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__DSCub__15A19AE5] DEFAULT (newid()) FOR [DSCubeReportCalculationGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__DSCub__1695BF1E] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DSCubeReportSectionGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeRe__Name__187E0790] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__Displ__19722BC9] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__Calcu__1A665002] DEFAULT ('') FOR [CalculationAssemblyQualifiedName]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__Calcu__1B5A743B] DEFAULT ('') FOR [CalculationXML]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__Detai__1C4E9874] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DetailReportGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__Displ__1D42BCAD] DEFAULT ('') FOR [DisplayFormat]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__Colum__1E36E0E6] DEFAULT ((0)) FOR [ColumnWidth]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__IsAtt__1F2B051F] DEFAULT ((0)) FOR [IsAttributeMember]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__CSSCl__201F2958] DEFAULT ('') FOR [CSSClass]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__Detai__21134D91] DEFAULT ('') FOR [DetailReportGUIDsCSV]; GO
ALTER TABLE [dbo].[REDSCubeReportCalculation] ADD CONSTRAINT [DF__REDSCubeR__IsCol__220771CA] DEFAULT ((0)) FOR [IsColumnCalculationTakePrecedent]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportConditionalFormat ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportConditionalFormat] (
[DSCubeReportConditionalFormatGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[ColumnTupleInfoXML] nvarchar(max) NOT NULL,
[OperatorValue] int NOT NULL,
[ValueToCompareAsString] nvarchar(1000) NOT NULL,
[CSSClass] nvarchar(100) NOT NULL,
[DisplayOrder] int NOT NULL,
[Comment] nvarchar(4000) NOT NULL,
PRIMARY KEY ([DSCubeReportConditionalFormatGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportConditionalFormat] ADD CONSTRAINT [FK__REDSCubeR__Repor__4EDA1841] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportConditionalFormat] ADD CONSTRAINT [DF__REDSCubeR__DSCub__4CF1CFCF] DEFAULT (newid()) FOR [DSCubeReportConditionalFormatGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportConditionalFormat] ADD CONSTRAINT [DF__REDSCubeR__Repor__4DE5F408] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportConditionalFormat] ADD CONSTRAINT [DF__REDSCubeR__Colum__4FCE3C7A] DEFAULT ('') FOR [ColumnTupleInfoXML]; GO
ALTER TABLE [dbo].[REDSCubeReportConditionalFormat] ADD CONSTRAINT [DF__REDSCubeR__Opera__50C260B3] DEFAULT ((0)) FOR [OperatorValue]; GO
ALTER TABLE [dbo].[REDSCubeReportConditionalFormat] ADD CONSTRAINT [DF__REDSCubeR__Value__51B684EC] DEFAULT ('') FOR [ValueToCompareAsString]; GO
ALTER TABLE [dbo].[REDSCubeReportConditionalFormat] ADD CONSTRAINT [DF__REDSCubeR__CSSCl__52AAA925] DEFAULT ('') FOR [CSSClass]; GO
ALTER TABLE [dbo].[REDSCubeReportConditionalFormat] ADD CONSTRAINT [DF__REDSCubeR__Displ__539ECD5E] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REDSCubeReportConditionalFormat] ADD CONSTRAINT [DF__REDSCubeR__Comme__5492F197] DEFAULT ('') FOR [Comment]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportDataSourceLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportDataSourceLink] (
[ReportGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[ProviderAssemblyQualifiedName] nvarchar(450) NOT NULL,
[IsDefault] bit NOT NULL,
PRIMARY KEY ([ReportGUID], [DataSourceGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportDataSourceLink] ADD CONSTRAINT [FK__REDSCubeR__Repor__5863827B] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportDataSourceLink] ADD CONSTRAINT [DF__REDSCubeR__Repor__576F5E42] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportDataSourceLink] ADD CONSTRAINT [DF__REDSCubeR__DataS__5957A6B4] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataSourceGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportDataSourceLink] ADD CONSTRAINT [DF__REDSCubeR__Provi__5A4BCAED] DEFAULT ('') FOR [ProviderAssemblyQualifiedName]; GO
ALTER TABLE [dbo].[REDSCubeReportDataSourceLink] ADD CONSTRAINT [DF__REDSCubeR__IsDef__5B3FEF26] DEFAULT ((0)) FOR [IsDefault]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportParameter] (
[DSCubeReportParameterGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[DSCubeReportSectionItemGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[ColumnName] nvarchar(150) NOT NULL,
[SourceTypeValue] int NOT NULL,
[IsUserEditable] bit NOT NULL,
[DisplayOrder] int NOT NULL,
[ParameterXML] nvarchar(max) NOT NULL,
[DimensionID] nvarchar(100) NOT NULL,
[AttributeID] nvarchar(100) NOT NULL,
[MeasureID] nvarchar(100) NOT NULL,
[ParameterValueAQN] nvarchar(400) NOT NULL,
[DSCubeReportParameterGroupGUID] uniqueidentifier NOT NULL,
[IsExpandingColumns] bit NOT NULL,
[HierarchyID] nvarchar(100) NOT NULL,
PRIMARY KEY ([DSCubeReportParameterGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [FK__REDSCubeR__Repor__6004A443] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__DSCub__5E1C5BD1] DEFAULT (newid()) FOR [DSCubeReportParameterGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Repor__5F10800A] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__DSCub__60F8C87C] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DSCubeReportSectionItemGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeRe__Name__61ECECB5] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Colum__62E110EE] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Sourc__63D53527] DEFAULT ((0)) FOR [SourceTypeValue]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__IsUse__64C95960] DEFAULT ((0)) FOR [IsUserEditable]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Displ__65BD7D99] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Param__66B1A1D2] DEFAULT ('') FOR [ParameterXML]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Dimen__67A5C60B] DEFAULT ('') FOR [DimensionID]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Attri__6899EA44] DEFAULT ('') FOR [AttributeID]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Measu__698E0E7D] DEFAULT ('') FOR [MeasureID]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Param__6A8232B6] DEFAULT ('') FOR [ParameterValueAQN]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__DSCub__6B7656EF] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DSCubeReportParameterGroupGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__IsExp__6C6A7B28] DEFAULT ((0)) FOR [IsExpandingColumns]; GO
ALTER TABLE [dbo].[REDSCubeReportParameter] ADD CONSTRAINT [DF__REDSCubeR__Hiera__6D5E9F61] DEFAULT ('') FOR [HierarchyID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportParameterGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportParameterGroup] (
[DSCubeReportParameterGroupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[IsMerged] bit NOT NULL,
PRIMARY KEY ([DSCubeReportParameterGroupGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportParameterGroup] ADD CONSTRAINT [FK__REDSCubeR__Repor__7223547E] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportParameterGroup] ADD CONSTRAINT [DF__REDSCubeR__DSCub__703B0C0C] DEFAULT (newid()) FOR [DSCubeReportParameterGroupGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportParameterGroup] ADD CONSTRAINT [DF__REDSCubeR__Repor__712F3045] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportParameterGroup] ADD CONSTRAINT [DF__REDSCubeRe__Name__731778B7] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REDSCubeReportParameterGroup] ADD CONSTRAINT [DF__REDSCubeR__IsMer__740B9CF0] DEFAULT ((0)) FOR [IsMerged]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportSection] (
[DSCubeReportSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[DisplayLabel] nvarchar(100) NOT NULL,
[IsTemplate] bit NOT NULL,
[ShowSectionLabel] bit NOT NULL,
[ShowGrandTotal] bit NOT NULL,
[IsAutoNameFilter] bit NOT NULL,
[IsMergingRepeatHeader] bit NOT NULL,
[IsHidden] bit NOT NULL,
[ShowMargin] bit NOT NULL,
[IsTimeRelative] bit NOT NULL,
PRIMARY KEY ([DSCubeReportSectionGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__DSCub__093BC400] DEFAULT (newid()) FOR [DSCubeReportSectionGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeRe__Name__0A2FE839] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__Displ__0B240C72] DEFAULT ('') FOR [DisplayLabel]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__IsTem__0C1830AB] DEFAULT ((0)) FOR [IsTemplate]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__ShowS__0D0C54E4] DEFAULT ((0)) FOR [ShowSectionLabel]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__ShowG__0E00791D] DEFAULT ((0)) FOR [ShowGrandTotal]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__IsAut__0EF49D56] DEFAULT ((0)) FOR [IsAutoNameFilter]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__IsMer__0FE8C18F] DEFAULT ((1)) FOR [IsMergingRepeatHeader]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__IsHid__10DCE5C8] DEFAULT ((0)) FOR [IsHidden]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__ShowM__11D10A01] DEFAULT ((1)) FOR [ShowMargin]; GO
ALTER TABLE [dbo].[REDSCubeReportSection] ADD CONSTRAINT [DF__REDSCubeR__IsTim__12C52E3A] DEFAULT ((0)) FOR [IsTimeRelative]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportSectionAttribute ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportSectionAttribute] (
[DSCubeReportSectionAttributeGUID] uniqueidentifier NOT NULL,
[DSCubeReportSectionGUID] uniqueidentifier NULL,
[Name] nvarchar(100) NOT NULL,
[ColumnName] nvarchar(200) NOT NULL,
[AttributeID] nvarchar(200) NOT NULL,
[DimensionID] nvarchar(200) NOT NULL,
[HierarchyID] nvarchar(200) NOT NULL,
[HierarchyNameCached] nvarchar(100) NOT NULL,
[DrilldownStatusValue] int NOT NULL,
[DisplayOrder] int NOT NULL,
[VisibilityStatusValue] int NOT NULL,
[ColumnWidth] int NOT NULL,
[DetailReportGUID] uniqueidentifier NOT NULL,
[FilterMemberCSV] nvarchar(max) NOT NULL,
[SortOrderValue] int NOT NULL,
[ShowSubtotal] bit NOT NULL,
[DetailReportGUIDsCSV] nvarchar(2000) NOT NULL,
PRIMARY KEY ([DSCubeReportSectionAttributeGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [FK__REDSCubeR__DSCub__26CC26E7] FOREIGN KEY ([DSCubeReportSectionGUID]) REFERENCES [dbo].[REDSCubeReportSection] ([DSCubeReportSectionGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__DSCub__24E3DE75] DEFAULT (newid()) FOR [DSCubeReportSectionAttributeGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__DSCub__25D802AE] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DSCubeReportSectionGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeRe__Name__27C04B20] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Colum__28B46F59] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Attri__29A89392] DEFAULT ('') FOR [AttributeID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Dimen__2A9CB7CB] DEFAULT ('') FOR [DimensionID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Hiera__2B90DC04] DEFAULT ('') FOR [HierarchyID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Hiera__2C85003D] DEFAULT ('') FOR [HierarchyNameCached]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Drill__2D792476] DEFAULT ((0)) FOR [DrilldownStatusValue]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Displ__2E6D48AF] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Visib__2F616CE8] DEFAULT ((0)) FOR [VisibilityStatusValue]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Colum__30559121] DEFAULT ((0)) FOR [ColumnWidth]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Detai__3149B55A] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DetailReportGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Filte__323DD993] DEFAULT ('') FOR [FilterMemberCSV]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__SortO__3331FDCC] DEFAULT ((-1)) FOR [SortOrderValue]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__ShowS__34262205] DEFAULT ((0)) FOR [ShowSubtotal]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionAttribute] ADD CONSTRAINT [DF__REDSCubeR__Detai__351A463E] DEFAULT ('') FOR [DetailReportGUIDsCSV]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportSectionLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportSectionLink] (
[DSCubeReportSectionLinkGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[DSCubeReportSectionGUID] uniqueidentifier NOT NULL,
[DisplayOrder] int NOT NULL,
[IsOnColumn] bit NOT NULL,
PRIMARY KEY ([DSCubeReportSectionLinkGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportSectionLink] ADD CONSTRAINT [FK__REDSCubeR__DSCub__7AB89A7F] FOREIGN KEY ([DSCubeReportSectionGUID]) REFERENCES [dbo].[REDSCubeReportSection] ([DSCubeReportSectionGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportSectionLink] ADD CONSTRAINT [FK__REDSCubeR__Repor__78D0520D] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportSectionLink] ADD CONSTRAINT [DF__REDSCubeR__DSCub__76E8099B] DEFAULT (newid()) FOR [DSCubeReportSectionLinkGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionLink] ADD CONSTRAINT [DF__REDSCubeR__Repor__77DC2DD4] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionLink] ADD CONSTRAINT [DF__REDSCubeR__DSCub__79C47646] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DSCubeReportSectionGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionLink] ADD CONSTRAINT [DF__REDSCubeR__Displ__7BACBEB8] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionLink] ADD CONSTRAINT [DF__REDSCubeR__IsOnC__7CA0E2F1] DEFAULT ((0)) FOR [IsOnColumn]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportSectionMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportSectionMeasure] (
[DSCubeReportSectionMeasureGUID] uniqueidentifier NOT NULL,
[DSCubeReportSectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[MeasureID] nvarchar(100) NOT NULL,
[DisplayFormatCached] nvarchar(100) NOT NULL,
[DisplayOrder] int NOT NULL,
[ColumnWidth] int NOT NULL,
[DetailReportGUID] uniqueidentifier NOT NULL,
[LinkedSectionGUIDsCSV] nvarchar(max) NOT NULL,
[DetailReportGUIDsCSV] nvarchar(2000) NOT NULL,
[AggregationType] tinyint NOT NULL,
PRIMARY KEY ([DSCubeReportSectionMeasureGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [FK__REDSCubeR__DSCub__41801D23] FOREIGN KEY ([DSCubeReportSectionGUID]) REFERENCES [dbo].[REDSCubeReportSection] ([DSCubeReportSectionGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__DSCub__3F97D4B1] DEFAULT (newid()) FOR [DSCubeReportSectionMeasureGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__DSCub__408BF8EA] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DSCubeReportSectionGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeRe__Name__4274415C] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__Measu__43686595] DEFAULT ('') FOR [MeasureID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__Displ__445C89CE] DEFAULT ('') FOR [DisplayFormatCached]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__Displ__4550AE07] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__Colum__4644D240] DEFAULT ((0)) FOR [ColumnWidth]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__Detai__4738F679] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DetailReportGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__Linke__482D1AB2] DEFAULT ('') FOR [LinkedSectionGUIDsCSV]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__Detai__49213EEB] DEFAULT ('') FOR [DetailReportGUIDsCSV]; GO
ALTER TABLE [dbo].[REDSCubeReportSectionMeasure] ADD CONSTRAINT [DF__REDSCubeR__Aggre__4A156324] DEFAULT ((0)) FOR [AggregationType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDSCubeReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDSCubeReportSetup] (
[DSCubeReportSetupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[LaunchMode] int NOT NULL,
[IsDrilldownIndented] bit NOT NULL,
[Style] nvarchar(100) NOT NULL,
[IsAutoRefresh] bit NOT NULL,
[SortArgsXML] nvarchar(max) NOT NULL,
[IsTitleVisible] bit NOT NULL,
[HideEmptyData] bit NOT NULL,
[HasPHIData] bit NOT NULL,
[IsPaneFrozen] bit NOT NULL,
[IsExcelOnly] bit NOT NULL,
[ChartConfigJSON] nvarchar(max) NOT NULL,
[ChartConfigAQN] nvarchar(max) NOT NULL,
PRIMARY KEY ([DSCubeReportSetupGUID])
);
GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [FK__REDSCubeR__Repor__7CD5ED1B] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__IsAut__00A67DFF] DEFAULT ((0)) FOR [IsAutoRefresh]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__SortA__019AA238] DEFAULT ('') FOR [SortArgsXML]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__IsTit__028EC671] DEFAULT ((0)) FOR [IsTitleVisible]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__HideE__0382EAAA] DEFAULT ((0)) FOR [HideEmptyData]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__HasPH__04770EE3] DEFAULT ((0)) FOR [HasPHIData]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__IsPan__056B331C] DEFAULT ((0)) FOR [IsPaneFrozen]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__IsExc__065F5755] DEFAULT ((0)) FOR [IsExcelOnly]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__Chart__6FC6D617] DEFAULT ('') FOR [ChartConfigJSON]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__Chart__72A342C2] DEFAULT ('') FOR [ChartConfigAQN]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__DSCub__7AEDA4A9] DEFAULT (newid()) FOR [DSCubeReportSetupGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__Repor__7BE1C8E2] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__Launc__7DCA1154] DEFAULT ((0)) FOR [LaunchMode]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__IsDri__7EBE358D] DEFAULT ((0)) FOR [IsDrilldownIndented]; GO
ALTER TABLE [dbo].[REDSCubeReportSetup] ADD CONSTRAINT [DF__REDSCubeR__Style__7FB259C6] DEFAULT ('') FOR [Style]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REDataSource ------------------
---------------------------------------------
CREATE TABLE [dbo].[REDataSource] (
[DataSourceGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[SourceGUID] uniqueidentifier NOT NULL,
[SourceType] int NOT NULL,
[Name] nvarchar(max) NOT NULL,
[SkipBlanks] bit NOT NULL,
[SimpleNames] bit NOT NULL,
PRIMARY KEY ([DataSourceGUID])
);
CREATE NONCLUSTERED INDEX [IDX_REDataSource] ON [dbo].[REDataSource] ([ReportGUID]);
GO
ALTER TABLE [dbo].[REDataSource] ADD CONSTRAINT [FK_REDataSource_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.REERHelpText ------------------
---------------------------------------------
CREATE TABLE [dbo].[REERHelpText] (
[ERHelpID] smallint NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Text] nvarchar(max) NOT NULL,
[Grouping] nvarchar(20) NOT NULL,
[ImagePath] nvarchar(50) NOT NULL,
PRIMARY KEY ([ERHelpID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.REExConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[REExConfig] (
[ExConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(max) NOT NULL,
[SheetGUID] uniqueidentifier NOT NULL,
[ParentGUID] uniqueidentifier NOT NULL,
[ConfigType] int NOT NULL,
[DataSource] nvarchar(max) NOT NULL,
[Dimension] nvarchar(max) NOT NULL,
[UseParentContext] bit NOT NULL,
[RangeAddress] nvarchar(max) NOT NULL,
[Descending] bit NOT NULL,
[IsWebDrillDownable] bit NOT NULL,
[HiddenPIndex] int NOT NULL,
[DDIconAlignment] bit NOT NULL,
[DrillDownDimension] nvarchar(max) NOT NULL,
[ClickCellAddress] nchar(10) NOT NULL,
[FilterDimensionMember] nvarchar(max) NOT NULL,
[HideConsolidatedMembers] bit NOT NULL,
PRIMARY KEY ([ExConfigGUID])
);
GO
ALTER TABLE [dbo].[REExConfig] ADD CONSTRAINT [FK_REExConfig_REExConfig] FOREIGN KEY ([SheetGUID]) REFERENCES [dbo].[RESheetConfig] ([SheetGUID]); GO
ALTER TABLE [dbo].[REExConfig] ADD CONSTRAINT [DF_REExConfig_IsWebDrillDownable] DEFAULT ((0)) FOR [IsWebDrillDownable]; GO
ALTER TABLE [dbo].[REExConfig] ADD CONSTRAINT [DF_REExConfig_HiddenPIndex] DEFAULT ((0)) FOR [HiddenPIndex]; GO
ALTER TABLE [dbo].[REExConfig] ADD CONSTRAINT [DF_REExConfig_ClickPIndex] DEFAULT ((0)) FOR [DDIconAlignment]; GO
ALTER TABLE [dbo].[REExConfig] ADD CONSTRAINT [DF_REExConfig_DrillDownDimension] DEFAULT ('') FOR [DrillDownDimension]; GO
ALTER TABLE [dbo].[REExConfig] ADD CONSTRAINT [DF_REExConfig_ClickCellAddress] DEFAULT ('0') FOR [ClickCellAddress]; GO
ALTER TABLE [dbo].[REExConfig] ADD CONSTRAINT [DF_REExConfig_FilterDimensionMember] DEFAULT ('') FOR [FilterDimensionMember]; GO
ALTER TABLE [dbo].[REExConfig] ADD CONSTRAINT [DF_REExConfig_HideConsolidatedMembers] DEFAULT ((0)) FOR [HideConsolidatedMembers]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REExConfigFilterMembers ------------------
---------------------------------------------
CREATE TABLE [dbo].[REExConfigFilterMembers] (
[ExConfigGUID] uniqueidentifier NOT NULL,
[FilterMember] nvarchar(100) NOT NULL,
PRIMARY KEY ([ExConfigGUID], [FilterMember])
);
GO
ALTER TABLE [dbo].[REExConfigFilterMembers] ADD CONSTRAINT [FK_REEXCONFIG_EXCONFIGGUID] FOREIGN KEY ([ExConfigGUID]) REFERENCES [dbo].[REExConfig] ([ExConfigGUID]); GO
ALTER TABLE [dbo].[REExConfigFilterMembers] ADD CONSTRAINT [DF_REExConfigFilterMembers_FilterMember] DEFAULT ('') FOR [FilterMember]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REExReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[REExReportSetup] (
[ExReportSetupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[ExReportTemplateGUID] uniqueidentifier NOT NULL,
[OutputType] nvarchar(64) NOT NULL,
[ParametersXML] nvarchar(max) NOT NULL,
PRIMARY KEY ([ExReportSetupGUID])
);
GO
ALTER TABLE [dbo].[REExReportSetup] ADD CONSTRAINT [FK_REExReportSetup_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REExReportSetup] ADD CONSTRAINT [DF_REExReportSetup_ExReportSetupGUID] DEFAULT (newid()) FOR [ExReportSetupGUID]; GO
ALTER TABLE [dbo].[REExReportSetup] ADD CONSTRAINT [DF_REExReportSetup_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REExReportSetup] ADD CONSTRAINT [DF_REExReportSetup_ExReportTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ExReportTemplateGUID]; GO
ALTER TABLE [dbo].[REExReportSetup] ADD CONSTRAINT [DF_REExReportSetup_OutputType] DEFAULT ('') FOR [OutputType]; GO
ALTER TABLE [dbo].[REExReportSetup] ADD CONSTRAINT [DF_REExReportSetup_ParametersXML] DEFAULT ('') FOR [ParametersXML]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REExtractReportOutputColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[REExtractReportOutputColumn] (
[ExtractReportOutputFormatColumnGUID] uniqueidentifier NOT NULL,
[ClientReportSetupGUID] uniqueidentifier NULL,
[ClientReportSectionIdentifierGUID] uniqueidentifier NULL,
[DisplayOrder] int NOT NULL,
[IsTrimLeadingZeroes] bit NOT NULL,
[FormatString] nvarchar(100) NOT NULL,
[NullHandler] smallint NOT NULL,
PRIMARY KEY ([ExtractReportOutputFormatColumnGUID])
);
GO
ALTER TABLE [dbo].[REExtractReportOutputColumn] ADD CONSTRAINT [FK__REExtract__Clien__494731A0] FOREIGN KEY ([ClientReportSetupGUID]) REFERENCES [dbo].[REClientReportSetup] ([ClientReportSetupGUID]); GO
ALTER TABLE [dbo].[REExtractReportOutputColumn] ADD CONSTRAINT [DF__REExtract__NullH__004E191E] DEFAULT ((0)) FOR [NullHandler]; GO
ALTER TABLE [dbo].[REExtractReportOutputColumn] ADD CONSTRAINT [DF__REExtract__Extra__475EE92E] DEFAULT (newid()) FOR [ExtractReportOutputFormatColumnGUID]; GO
ALTER TABLE [dbo].[REExtractReportOutputColumn] ADD CONSTRAINT [DF__REExtract__Clien__48530D67] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ClientReportSetupGUID]; GO
ALTER TABLE [dbo].[REExtractReportOutputColumn] ADD CONSTRAINT [DF__REExtract__Clien__4A3B55D9] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ClientReportSectionIdentifierGUID]; GO
ALTER TABLE [dbo].[REExtractReportOutputColumn] ADD CONSTRAINT [DF__REExtract__Displ__4B2F7A12] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[REExtractReportOutputColumn] ADD CONSTRAINT [DF__REExtract__IsTri__4C239E4B] DEFAULT ((0)) FOR [IsTrimLeadingZeroes]; GO
ALTER TABLE [dbo].[REExtractReportOutputColumn] ADD CONSTRAINT [DF__REExtract__Forma__4D17C284] DEFAULT ('') FOR [FormatString]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REExtractReportOutputFormat ------------------
---------------------------------------------
CREATE TABLE [dbo].[REExtractReportOutputFormat] (
[ExtractReportOutputFormatGUID] uniqueidentifier NOT NULL,
[ClientReportSetupGUID] uniqueidentifier NULL,
[FilenameExtension] nvarchar(10) NOT NULL,
[SourceFileTypeVal] smallint NOT NULL,
[ConfigXML] nvarchar(max) NOT NULL,
[IsCompressed] bit NOT NULL,
[IsDatetimeIncluded] bit NOT NULL,
[IsCleaningCarriageReturn] bit NOT NULL,
[IsCleaningSpecialCharacters] bit NOT NULL,
PRIMARY KEY ([ExtractReportOutputFormatGUID])
);
GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [FK__REExtract__Clien__3EC9A32D] FOREIGN KEY ([ClientReportSetupGUID]) REFERENCES [dbo].[REClientReportSetup] ([ClientReportSetupGUID]); GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [DF__REExtract__IsDat__1660B4F4] DEFAULT ((0)) FOR [IsDatetimeIncluded]; GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [DF__REExtract__IsCle__1754D92D] DEFAULT ((0)) FOR [IsCleaningCarriageReturn]; GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [DF__REExtract__IsCle__1848FD66] DEFAULT ((0)) FOR [IsCleaningSpecialCharacters]; GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [DF__REExtract__Extra__3CE15ABB] DEFAULT (newid()) FOR [ExtractReportOutputFormatGUID]; GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [DF__REExtract__Clien__3DD57EF4] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ClientReportSetupGUID]; GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [DF__REExtract__Filen__3FBDC766] DEFAULT ('') FOR [FilenameExtension]; GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [DF__REExtract__Sourc__40B1EB9F] DEFAULT ((0)) FOR [SourceFileTypeVal]; GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [DF__REExtract__Confi__41A60FD8] DEFAULT ('') FOR [ConfigXML]; GO
ALTER TABLE [dbo].[REExtractReportOutputFormat] ADD CONSTRAINT [DF__REExtract__IsCom__668E471B] DEFAULT ((0)) FOR [IsCompressed]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REFileReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[REFileReportSetup] (
[FileReportSetupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[Extension] nvarchar(64) NOT NULL,
[ImageName] nvarchar(64) NOT NULL,
[OriginalFileName] nvarchar(400) NOT NULL,
[ContentLengthInByte] int NOT NULL,
PRIMARY KEY ([FileReportSetupGUID])
);
GO
ALTER TABLE [dbo].[REFileReportSetup] ADD CONSTRAINT [FK_REFileReportSetup_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REFileReportSetup] ADD CONSTRAINT [DF_REFileReportSetupGUID_FileReportSetupGUID] DEFAULT (newid()) FOR [FileReportSetupGUID]; GO
ALTER TABLE [dbo].[REFileReportSetup] ADD CONSTRAINT [DF_REFileReportSetupGUID_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REFileReportSetup] ADD CONSTRAINT [DF_REFileReportSetupGUID_Extension] DEFAULT ('') FOR [Extension]; GO
ALTER TABLE [dbo].[REFileReportSetup] ADD CONSTRAINT [DF_REFileReportSetupGUID_ImageName] DEFAULT ('') FOR [ImageName]; GO
ALTER TABLE [dbo].[REFileReportSetup] ADD CONSTRAINT [DF_REFileReportSetupGUID_OriginalFileName] DEFAULT ('') FOR [OriginalFileName]; GO
ALTER TABLE [dbo].[REFileReportSetup] ADD CONSTRAINT [DF_REFileReportSetupGUID_ContentLengthInByte] DEFAULT ((0)) FOR [ContentLengthInByte]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REFormReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[REFormReportSetup] (
[FormReportSetupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[FormGUID] uniqueidentifier NOT NULL,
[PlanGUIDs] nvarchar(max) NOT NULL,
[PlanNames] nvarchar(max) NOT NULL,
PRIMARY KEY ([FormReportSetupGUID])
);
GO
ALTER TABLE [dbo].[REFormReportSetup] ADD CONSTRAINT [DF_REFormReportSetup_FormReportSetupGUID] DEFAULT (newid()) FOR [FormReportSetupGUID]; GO
ALTER TABLE [dbo].[REFormReportSetup] ADD CONSTRAINT [DF_REFormReportSetup_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REFormReportSetup] ADD CONSTRAINT [DF_REFormReportSetup_FormGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormGUID]; GO
ALTER TABLE [dbo].[REFormReportSetup] ADD CONSTRAINT [DF_REFormReportSetup_PlanGUIDs] DEFAULT ('') FOR [PlanGUIDs]; GO
ALTER TABLE [dbo].[REFormReportSetup] ADD CONSTRAINT [DF_REFormReportSetup_PlanNames] DEFAULT ('') FOR [PlanNames]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REGroupingParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[REGroupingParameter] (
[GroupingParameterGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[ParameterValueXML] nvarchar(max) NOT NULL,
[IsEditable] bit NOT NULL,
[DefaultLinkedParameterGUID] uniqueidentifier NOT NULL,
[SortOrder] int NOT NULL,
[IsMultiSelect] bit NOT NULL,
[IsExpandable] bit NOT NULL,
PRIMARY KEY ([GroupingParameterGUID])
);
GO
ALTER TABLE [dbo].[REGroupingParameter] ADD CONSTRAINT [FK_REGroupingParameter_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REGroupingParameter] ADD CONSTRAINT [DF_REGroupingParameter_DefaultLinkedParameterGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultLinkedParameterGUID]; GO
ALTER TABLE [dbo].[REGroupingParameter] ADD CONSTRAINT [DF_REGroupingParameter_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REGroupingParameter] ADD CONSTRAINT [DF_REGroupingParameter2_GroupingParameterGUID] DEFAULT (newid()) FOR [GroupingParameterGUID]; GO
ALTER TABLE [dbo].[REGroupingParameter] ADD CONSTRAINT [DF_REGroupingParameter_IsEditable] DEFAULT ((1)) FOR [IsEditable]; GO
ALTER TABLE [dbo].[REGroupingParameter] ADD CONSTRAINT [DF_REGroupingParameter_Order] DEFAULT ((-1)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[REGroupingParameter] ADD CONSTRAINT [DF_REGroupingParameter_IsMultiSelect] DEFAULT ((1)) FOR [IsMultiSelect]; GO
ALTER TABLE [dbo].[REGroupingParameter] ADD CONSTRAINT [DF__REGroupin__IsExp__65114617] DEFAULT ((1)) FOR [IsExpandable]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REGroupingParameterLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[REGroupingParameterLink] (
[GroupingParameterLinkGUID] uniqueidentifier NOT NULL,
[GroupingParameterGUID] uniqueidentifier NOT NULL,
[LinkedSourceGUID] uniqueidentifier NOT NULL,
[LinkedParameterGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([GroupingParameterLinkGUID])
);
GO
ALTER TABLE [dbo].[REGroupingParameterLink] ADD CONSTRAINT [FK_REGroupingParameterLink_REGroupingParameter] FOREIGN KEY ([GroupingParameterGUID]) REFERENCES [dbo].[REGroupingParameter] ([GroupingParameterGUID]); GO
ALTER TABLE [dbo].[REGroupingParameterLink] ADD CONSTRAINT [DF_REGroupingParameterParameterLink_GroupingParameterParameterLinkGUID] DEFAULT (newid()) FOR [GroupingParameterLinkGUID]; GO
ALTER TABLE [dbo].[REGroupingParameterLink] ADD CONSTRAINT [DF_REGroupingParameterParameterLink_GroupingParameterGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GroupingParameterGUID]; GO
ALTER TABLE [dbo].[REGroupingParameterLink] ADD CONSTRAINT [DF_REGroupingParameterParameterLink_LinkedSourceGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LinkedSourceGUID]; GO
ALTER TABLE [dbo].[REGroupingParameterLink] ADD CONSTRAINT [DF_REGroupingParameterParameterLink_LinkedParameterGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LinkedParameterGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RELootType ------------------
---------------------------------------------
CREATE TABLE [dbo].[RELootType] (
[ID] uniqueidentifier NOT NULL,
[LootType] int NOT NULL,
[LootTypeName] nvarchar(64) NOT NULL,
[VERSION] timestamp NOT NULL,
PRIMARY KEY ([ID])
);
GO
ALTER TABLE [dbo].[RELootType] ADD CONSTRAINT [DF_RELootType_ID] DEFAULT (newid()) FOR [ID]; GO
ALTER TABLE [dbo].[RELootType] ADD CONSTRAINT [DF_RELootType_LootType] DEFAULT ((0)) FOR [LootType]; GO
ALTER TABLE [dbo].[RELootType] ADD CONSTRAINT [DF_RELootType_LootTypeName] DEFAULT ('') FOR [LootTypeName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REModelDataReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[REModelDataReportSetup] (
[ModelDataReportSetupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[Ranges] nvarchar(max) NOT NULL,
[EntityViewGUID] uniqueidentifier NOT NULL,
[PlanGUIDs] nvarchar(max) NOT NULL,
[PrintArea] nvarchar(64) NOT NULL,
[PrintTitleRows] nvarchar(64) NOT NULL,
[PrintTitleColumns] nvarchar(64) NOT NULL,
PRIMARY KEY ([ModelDataReportSetupGUID])
);
GO
ALTER TABLE [dbo].[REModelDataReportSetup] ADD CONSTRAINT [DF_REModelDataReportSetup_PrintArea] DEFAULT ('') FOR [PrintArea]; GO
ALTER TABLE [dbo].[REModelDataReportSetup] ADD CONSTRAINT [DF_REModelDataReportSetup_PrintTitleRows] DEFAULT ('') FOR [PrintTitleRows]; GO
ALTER TABLE [dbo].[REModelDataReportSetup] ADD CONSTRAINT [DF_REModelDataReportSetup_PrintTitleColumns] DEFAULT ('') FOR [PrintTitleColumns]; GO
ALTER TABLE [dbo].[REModelDataReportSetup] ADD CONSTRAINT [DF_REModelDataReportSetup_ModelDataReportSetupGUID] DEFAULT (newid()) FOR [ModelDataReportSetupGUID]; GO
ALTER TABLE [dbo].[REModelDataReportSetup] ADD CONSTRAINT [DF_REModelDataReportSetup_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REModelDataReportSetup] ADD CONSTRAINT [DF_REModelDataReportSetup_ModelTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelTemplateGUID]; GO
ALTER TABLE [dbo].[REModelDataReportSetup] ADD CONSTRAINT [DF_REModelDataReportSetup_Ranges] DEFAULT ('') FOR [Ranges]; GO
ALTER TABLE [dbo].[REModelDataReportSetup] ADD CONSTRAINT [DF_REModelDataReportSetup_EntityViewGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityViewGUID]; GO
ALTER TABLE [dbo].[REModelDataReportSetup] ADD CONSTRAINT [DF_REModelDataReportSetup_PlanGUIDs] DEFAULT ('') FOR [PlanGUIDs]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RENumberingParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[RENumberingParameter] (
[ParameterGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[StartValue] int NOT NULL,
[StopValue] int NOT NULL,
[StepValue] int NOT NULL,
PRIMARY KEY ([ParameterGUID])
);
GO
ALTER TABLE [dbo].[RENumberingParameter] ADD CONSTRAINT [FK_RENumberingParameter_REDataSource1] FOREIGN KEY ([DataSourceGUID]) REFERENCES [dbo].[REDataSource] ([DataSourceGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.REParameterCache ------------------
---------------------------------------------
CREATE TABLE [dbo].[REParameterCache] (
[ReportGUID] uniqueidentifier NOT NULL,
[ParameterCacheGUID] uniqueidentifier NOT NULL,
[Parameters] nvarchar(max) NOT NULL,
[CreatedAt] datetime NOT NULL,
PRIMARY KEY ([ParameterCacheGUID])
);
GO
ALTER TABLE [dbo].[REParameterCache] ADD CONSTRAINT [FK__REParamet__Repor__2D7196A4] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REParameterCache] ADD CONSTRAINT [DF__REParamet__Param__2E65BADD] DEFAULT (newid()) FOR [ParameterCacheGUID]; GO
ALTER TABLE [dbo].[REParameterCache] ADD CONSTRAINT [DF__REParamet__Param__2F59DF16] DEFAULT ('') FOR [Parameters]; GO
ALTER TABLE [dbo].[REParameterCache] ADD CONSTRAINT [DF__REParamet__Creat__304E034F] DEFAULT (getdate()) FOR [CreatedAt]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REParameterCrosswalk ------------------
---------------------------------------------
CREATE TABLE [dbo].[REParameterCrosswalk] (
[ParameterCrosswalkGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[StructureGUID] uniqueidentifier NOT NULL,
[IsExpanding] bit NOT NULL,
[IsScore] bit NOT NULL,
PRIMARY KEY ([ParameterCrosswalkGUID])
);
GO
ALTER TABLE [dbo].[REParameterCrosswalk] ADD CONSTRAINT [DF_REParameterCrosswalk_IsExpanding] DEFAULT ((0)) FOR [IsExpanding]; GO
ALTER TABLE [dbo].[REParameterCrosswalk] ADD CONSTRAINT [DF_REParameterCrosswalk_ParameterCrosswalkGUID] DEFAULT (newid()) FOR [ParameterCrosswalkGUID]; GO
ALTER TABLE [dbo].[REParameterCrosswalk] ADD CONSTRAINT [DF_REParameterCrosswalk_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REParameterCrosswalk] ADD CONSTRAINT [DF_REParameterCrosswalk_StructureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [StructureGUID]; GO
ALTER TABLE [dbo].[REParameterCrosswalk] ADD CONSTRAINT [DF_REParameterCrosswalk_IsScore] DEFAULT ((0)) FOR [IsScore]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REParameterSet ------------------
---------------------------------------------
CREATE TABLE [dbo].[REParameterSet] (
[ParameterSetGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[AuthorGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[IsEditable] bit NOT NULL,
[IsRecombiningAfterExpand] bit NOT NULL,
[IsSchedulable] bit NOT NULL,
PRIMARY KEY ([ParameterSetGUID])
);
GO
ALTER TABLE [dbo].[REParameterSet] ADD CONSTRAINT [DF_REParameterSet_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REParameterSet] ADD CONSTRAINT [DF_REParameterSet_IsPermanent] DEFAULT ((0)) FOR [IsEditable]; GO
ALTER TABLE [dbo].[REParameterSet] ADD CONSTRAINT [DF_REParameterSet_IsExpanding] DEFAULT ((0)) FOR [IsRecombiningAfterExpand]; GO
ALTER TABLE [dbo].[REParameterSet] ADD CONSTRAINT [DF_REParameterSet_IsScheduleable] DEFAULT ((0)) FOR [IsSchedulable]; GO
ALTER TABLE [dbo].[REParameterSet] ADD CONSTRAINT [DF_REParameterSet_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorGUID]; GO
ALTER TABLE [dbo].[REParameterSet] ADD CONSTRAINT [DF_REParameterSet_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REParameterSetParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[REParameterSetParameter] (
[ParameterSetParameterGUID] uniqueidentifier NOT NULL,
[ParameterSetGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[ParameterValueXML] nvarchar(max) NOT NULL,
[SourceID] nvarchar(100) NOT NULL,
[ParameterValueAQN] nvarchar(400) NOT NULL,
PRIMARY KEY ([ParameterSetParameterGUID])
);
GO
ALTER TABLE [dbo].[REParameterSetParameter] ADD CONSTRAINT [FK_REParameterSetParameter_REParameterSet] FOREIGN KEY ([ParameterSetGUID]) REFERENCES [dbo].[REParameterSet] ([ParameterSetGUID]); GO
ALTER TABLE [dbo].[REParameterSetParameter] ADD CONSTRAINT [DF__REParamet__Sourc__18CF7C5B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SourceID]; GO
ALTER TABLE [dbo].[REParameterSetParameter] ADD CONSTRAINT [DF__REParamet__Param__3CA2C87D] DEFAULT ('') FOR [ParameterValueAQN]; GO
ALTER TABLE [dbo].[REParameterSetParameter] ADD CONSTRAINT [DF_REParameterSetParameter_ParameterSetGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParameterSetGUID]; GO
ALTER TABLE [dbo].[REParameterSetParameter] ADD CONSTRAINT [DF_REParameterSetParameter_DimensionGUID_1] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[REParameterSetParameter] ADD CONSTRAINT [DF_REParameterSetParameter_ParameterSetParameterGUID] DEFAULT (newid()) FOR [ParameterSetParameterGUID]; GO
ALTER TABLE [dbo].[REParameterSetParameter] ADD CONSTRAINT [DF_REParameterSetParameter_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REParameterSetParameter] ADD CONSTRAINT [DF_REParameterSetParameter_DimensionGUID] DEFAULT ('') FOR [ParameterValueXML]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REParameterValue ------------------
---------------------------------------------
CREATE TABLE [dbo].[REParameterValue] (
[ParameterValueGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[ParameterValueXML] nvarchar(max) NOT NULL,
[AssemblyQualifiedName] nvarchar(450) NOT NULL,
PRIMARY KEY ([ParameterValueGUID])
);
GO
ALTER TABLE [dbo].[REParameterValue] ADD CONSTRAINT [FK_REParameterValue_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.REPatientPopulationLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[REPatientPopulationLink] (
[ReportGUID] uniqueidentifier NOT NULL,
[PatientPopulationID] int NOT NULL
);
CREATE UNIQUE NONCLUSTERED INDEX [UC_ReportPatientPopulation] ON [dbo].[REPatientPopulationLink] ([ReportGUID], [PatientPopulationID]);
GO
ALTER TABLE [dbo].[REPatientPopulationLink] ADD CONSTRAINT [FK__REPatient__Patie__1E01D6BC] FOREIGN KEY ([PatientPopulationID]) REFERENCES [dss].[DimClinicalIndicator] ([ClinicalIndicatorID]); GO
ALTER TABLE [dbo].[REPatientPopulationLink] ADD CONSTRAINT [FK__REPatient__Repor__1C198E4A] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[REPatientPopulationLink] ADD CONSTRAINT [DF__REPatient__Repor__1B256A11] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REPatientPopulationLink] ADD CONSTRAINT [DF__REPatient__Patie__1D0DB283] DEFAULT ((0)) FOR [PatientPopulationID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REPlanHackParameterValue ------------------
---------------------------------------------
CREATE TABLE [dbo].[REPlanHackParameterValue] (
[ParameterValueGUID] uniqueidentifier NOT NULL,
[ParameterGUID] uniqueidentifier NOT NULL,
[PlanGUIDs] nvarchar(max) NOT NULL,
[EntityViewGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ParameterValueGUID])
);
GO
ALTER TABLE [dbo].[REPlanHackParameterValue] ADD CONSTRAINT [DF_REPlanHackParameterValue_ParameterValueGUID] DEFAULT (newid()) FOR [ParameterValueGUID]; GO
ALTER TABLE [dbo].[REPlanHackParameterValue] ADD CONSTRAINT [DF_REPlanHackParameterValue_ParameterGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParameterGUID]; GO
ALTER TABLE [dbo].[REPlanHackParameterValue] ADD CONSTRAINT [DF_REPlanHackParameterValue_PlanGUIDs] DEFAULT ('') FOR [PlanGUIDs]; GO
ALTER TABLE [dbo].[REPlanHackParameterValue] ADD CONSTRAINT [DF_REPlanHackParameterValue_EntityViewGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityViewGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REQueryParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[REQueryParameter] (
[ParameterGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[QueryString] nvarchar(max) NOT NULL,
PRIMARY KEY ([ParameterGUID])
);
GO
ALTER TABLE [dbo].[REQueryParameter] ADD CONSTRAINT [FK_REQueryParameter_REDataSource] FOREIGN KEY ([DataSourceGUID]) REFERENCES [dbo].[REDataSource] ([DataSourceGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.REReport ------------------
---------------------------------------------
CREATE TABLE [dbo].[REReport] (
[ReportGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[AssemblyQualifiedName] nvarchar(450) NOT NULL,
[DateCreated] datetime NOT NULL,
[IsBuiltIn] bit NOT NULL,
[IsScheduleable] bit NOT NULL,
[IsDesktopEmbeddable] bit NOT NULL,
[IsPlanEmbeddable] bit NOT NULL,
[IsExecReportEmbeddable] bit NOT NULL,
[IsDirectoryReportable] bit NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[ReportXML] nvarchar(max) NOT NULL,
[IsUserDeletable] bit NOT NULL,
[ImageName] nvarchar(450) NOT NULL,
[DateLastModified] datetime NOT NULL,
[IsCacheable] bit NOT NULL,
[IsCachedPerUser] bit NOT NULL,
[IsBatchReport] bit NOT NULL,
[ReportDetailsXML] nvarchar(max) NOT NULL,
[IsBatchProcessable] bit NOT NULL,
[IsUsingDefaultTime] bit NOT NULL,
[AuthorUserGUID] uniqueidentifier NOT NULL,
[ConsolidatedItemsCSV] nvarchar(max) NOT NULL,
[ExpandedParametersCSV] nvarchar(max) NOT NULL,
[IsUsingZeroViewer] bit NOT NULL,
[IsRecombiningAfterExpand] bit NOT NULL,
[IsDataSource] bit NOT NULL,
[IsUsingPlanAttributes] bit NOT NULL,
[GlobalID] nvarchar(50) NOT NULL,
[IsERMacroEnabled] bit NOT NULL,
[IsAutoSizeRows] bit NOT NULL,
[DateAccessed] datetime NOT NULL,
[ScheduledTaskGUID] uniqueidentifier NOT NULL,
[LastRunDuration] int NOT NULL,
[LastRunRowCount] int NOT NULL,
[SourceReportGuid] uniqueidentifier NOT NULL,
[AuthorFullName] nvarchar(256) NOT NULL,
[ModuleGUID] uniqueidentifier NOT NULL,
[IsPublished] bit NOT NULL,
[StrataSphereReportGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ReportGUID])
);
GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REREPORTTEMP_REPORTGUID] DEFAULT (newid()) FOR [ReportGUID]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REREPORTTEMP_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REREPORTTEMP_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReportTemp_ASSEMBLYQUALIFIEDNAME] DEFAULT ('') FOR [AssemblyQualifiedName]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReportTemp_ISBUILTIN] DEFAULT ((0)) FOR [IsBuiltIn]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReportTemp_ISSCHEDULEABLE] DEFAULT ((0)) FOR [IsScheduleable]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReportTemp_ISDESKTOPEMBEDDABLE] DEFAULT ((0)) FOR [IsDesktopEmbeddable]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__Author__0A7E933C] DEFAULT ('') FOR [AuthorFullName]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReportTemp_ISPLANEMBEDDABLE] DEFAULT ((0)) FOR [IsPlanEmbeddable]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReportTemp_ISEXECREPORTEMBEDDABLE] DEFAULT ((0)) FOR [IsExecReportEmbeddable]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReportTemp_ISDIRECTORYREPORTABLE] DEFAULT ((0)) FOR [IsDirectoryReportable]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REREPORTTEMP_REPORTXML] DEFAULT ('') FOR [ReportXML]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_ISUSERDELETABLE] DEFAULT ((1)) FOR [IsUserDeletable]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IMAGENAME] DEFAULT ('') FOR [ImageName]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_DateLastModified] DEFAULT (getdate()) FOR [DateLastModified]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IsCacheable] DEFAULT ((0)) FOR [IsCacheable]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IsCachedPerUser] DEFAULT ((1)) FOR [IsCachedPerUser]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IsBatchReport] DEFAULT ((0)) FOR [IsBatchReport]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IsUsingZeroViewer] DEFAULT ((0)) FOR [IsUsingZeroViewer]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IsRecombiningAfterExpand] DEFAULT ((0)) FOR [IsRecombiningAfterExpand]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__Module__1CD64654] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModuleGUID]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__LastRu__269488EE] DEFAULT ((0)) FOR [LastRunDuration]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__LastRu__2788AD27] DEFAULT ((0)) FOR [LastRunRowCount]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__IsPubl__2ABA5157] DEFAULT ((0)) FOR [IsPublished]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__DateAc__3120CB42] DEFAULT (getdate()) FOR [DateAccessed]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IsBatchProcessable] DEFAULT ((0)) FOR [IsBatchProcessable]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IsUsingDefaultTime] DEFAULT ((0)) FOR [IsUsingDefaultTime]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IsDataSource] DEFAULT ((0)) FOR [IsDataSource]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_IsUsingPlanAttributes] DEFAULT ((0)) FOR [IsUsingPlanAttributes]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__Schedu__429A3411] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScheduledTaskGUID]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_AuthorUserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorUserGUID]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_ConsolidatedItems] DEFAULT ('') FOR [ConsolidatedItemsCSV]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_ExpandedParameters] DEFAULT ('') FOR [ExpandedParametersCSV]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__IsERMa__5937E11C] DEFAULT ((0)) FOR [IsERMacroEnabled]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_GlobalID] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_StrataSphereReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [StrataSphereReportGUID]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF_REReport_ReportDetailsXML] DEFAULT ('') FOR [ReportDetailsXML]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__Source__76114D24] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SourceReportGuid]; GO
ALTER TABLE [dbo].[REReport] ADD CONSTRAINT [DF__REReport__IsAuto__7B71C199] DEFAULT ((0)) FOR [IsAutoSizeRows]; GO
---------------------------------------------
---------------------------------------------
-- dbo.REReportCustomActionLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[REReportCustomActionLink] (
[REReportCustomActionLink] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[ActionGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([REReportCustomActionLink])
);
GO
ALTER TABLE [dbo].[REReportCustomActionLink] ADD CONSTRAINT [FK_REReportCustomActionLink_CustomAction] FOREIGN KEY ([ActionGUID]) REFERENCES [dbo].[CustomAction] ([ActionGUID]); GO
ALTER TABLE [dbo].[REReportCustomActionLink] ADD CONSTRAINT [FK_REReportCustomActionLink_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.RESQLReportDisplayColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESQLReportDisplayColumn] (
[DisplayColumnGUID] uniqueidentifier NOT NULL,
[SQLReportSetupGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[DrillDownParentColumnGUID] uniqueidentifier NOT NULL,
[IsDrillDown] bit NOT NULL,
[DisplayOrder] int NOT NULL,
[ColumnWidth] int NOT NULL,
[AggregateFunction] int NOT NULL,
[FormatString] nvarchar(64) NOT NULL,
[ColumnName] nvarchar(64) NOT NULL,
[IsConsolidatable] bit NOT NULL,
[IsConsolidated] bit NOT NULL,
[SimpleDataType] int NOT NULL,
[LayoutType] int NOT NULL,
[SortOrder] int NOT NULL,
[IsAutoWidth] bit NOT NULL,
PRIMARY KEY ([DisplayColumnGUID])
);
GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [FK_RESQLReportDisplayColumn_RESQLReportSetup] FOREIGN KEY ([SQLReportSetupGUID]) REFERENCES [dbo].[RESQLReportSetup] ([SQLReportSetupGUID]); GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_SortOrder] DEFAULT ((-1)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_DisplayColumnGUID] DEFAULT (newid()) FOR [DisplayColumnGUID]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_IsAutoWidth] DEFAULT ((0)) FOR [IsAutoWidth]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_SQLReportSetupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SQLReportSetupGUID]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_DrillDownParentColumnGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DrillDownParentColumnGUID]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_IsDrillDown] DEFAULT ((0)) FOR [IsDrillDown]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_DisplayOrder] DEFAULT ((-1)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_ColumnWidth] DEFAULT ((150)) FOR [ColumnWidth]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_AggregateFunction] DEFAULT ((0)) FOR [AggregateFunction]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_FormatString] DEFAULT ('') FOR [FormatString]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_ColumnName] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_IsConsolidtable] DEFAULT ((0)) FOR [IsConsolidatable]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_IsConsolidated] DEFAULT ((0)) FOR [IsConsolidated]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_SimpleDataType] DEFAULT ((0)) FOR [SimpleDataType]; GO
ALTER TABLE [dbo].[RESQLReportDisplayColumn] ADD CONSTRAINT [DF_RESQLReportDisplayColumn_LayoutType] DEFAULT ((0)) FOR [LayoutType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RESQLReportFilterColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESQLReportFilterColumn] (
[FilterColumnGUID] uniqueidentifier NOT NULL,
[SQLReportSetupGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[ColumnName] nvarchar(64) NOT NULL,
[ColumnSourceGUID] uniqueidentifier NOT NULL,
[DataViewColumnType] int NOT NULL,
[IsUserEditable] bit NOT NULL,
[SimpleDataType] int NOT NULL,
[ParameterXML] nvarchar(max) NOT NULL,
[IsSQLOperatorEditable] bit NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([FilterColumnGUID])
);
GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [FK_RESQLReportFilterColumn_RESQLReportSetup] FOREIGN KEY ([SQLReportSetupGUID]) REFERENCES [dbo].[RESQLReportSetup] ([SQLReportSetupGUID]); GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_FilterColumnGUID] DEFAULT (newid()) FOR [FilterColumnGUID]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_SQLReportSetupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SQLReportSetupGUID]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_ColumnName] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_ColumnSourceGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ColumnSourceGUID]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_DataViewColumnType] DEFAULT ((0)) FOR [DataViewColumnType]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_IsUserEditable] DEFAULT ((0)) FOR [IsUserEditable]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_SimpleDataType] DEFAULT ((0)) FOR [SimpleDataType]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_ParameterXML] DEFAULT ('') FOR [ParameterXML]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_DisplayOrder] DEFAULT ((-1)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[RESQLReportFilterColumn] ADD CONSTRAINT [DF_RESQLReportFilterColumn_IsSQLOperatorEditable] DEFAULT ((1)) FOR [IsSQLOperatorEditable]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RESQLReportPivotColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESQLReportPivotColumn] (
[PivotColumnGUID] uniqueidentifier NOT NULL,
[SQLReportSetupGUID] uniqueidentifier NOT NULL,
[ValueColumnName] nvarchar(64) NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([PivotColumnGUID])
);
GO
ALTER TABLE [dbo].[RESQLReportPivotColumn] ADD CONSTRAINT [FK_RESQLReportPivotColumn_RESQLReportSetup] FOREIGN KEY ([SQLReportSetupGUID]) REFERENCES [dbo].[RESQLReportSetup] ([SQLReportSetupGUID]); GO
ALTER TABLE [dbo].[RESQLReportPivotColumn] ADD CONSTRAINT [DF_RESQLReportPivotColumn_PivotColumnGUID] DEFAULT (newid()) FOR [PivotColumnGUID]; GO
ALTER TABLE [dbo].[RESQLReportPivotColumn] ADD CONSTRAINT [DF_RESQLReportPivotColumn_ValueColumnName] DEFAULT ('') FOR [ValueColumnName]; GO
ALTER TABLE [dbo].[RESQLReportPivotColumn] ADD CONSTRAINT [DF_RESQLReportPivotColumn_DisplayOrder] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[RESQLReportPivotColumn] ADD CONSTRAINT [DF_RESQLReportPivotColumn_SQLReportSetupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SQLReportSetupGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RESQLReportPivotColumnFilter ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESQLReportPivotColumnFilter] (
[PivotColumnFilterGUID] uniqueidentifier NOT NULL,
[PivotColumnGUID] uniqueidentifier NOT NULL,
[ColumnName] nvarchar(64) NOT NULL,
[ColumnValue] nvarchar(400) NOT NULL,
[SimpleDataType] int NOT NULL,
PRIMARY KEY ([PivotColumnFilterGUID])
);
GO
ALTER TABLE [dbo].[RESQLReportPivotColumnFilter] ADD CONSTRAINT [FK_RESQLReportPivotColumnFilter_RESQLReportPivotColumn] FOREIGN KEY ([PivotColumnGUID]) REFERENCES [dbo].[RESQLReportPivotColumn] ([PivotColumnGUID]); GO
ALTER TABLE [dbo].[RESQLReportPivotColumnFilter] ADD CONSTRAINT [DF_RESQLReportPivotColumnFilter_PivotColumnFilterGUID] DEFAULT (newid()) FOR [PivotColumnFilterGUID]; GO
ALTER TABLE [dbo].[RESQLReportPivotColumnFilter] ADD CONSTRAINT [DF_RESQLReportPivotColumnFilter_ColumnName] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[RESQLReportPivotColumnFilter] ADD CONSTRAINT [DF_RESQLReportPivotColumnFilter_Value] DEFAULT ('') FOR [ColumnValue]; GO
ALTER TABLE [dbo].[RESQLReportPivotColumnFilter] ADD CONSTRAINT [DF_RESQLReportPivotColumnFilter_SimpleDataType] DEFAULT ((0)) FOR [SimpleDataType]; GO
ALTER TABLE [dbo].[RESQLReportPivotColumnFilter] ADD CONSTRAINT [DF_RESQLReportPivotColumnFilter_PivotColumnGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PivotColumnGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RESQLReportRegisteredAttribute ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESQLReportRegisteredAttribute] (
[RegisteredAttributeGUID] uniqueidentifier NOT NULL,
[RegisteredDimensionGUID] uniqueidentifier NOT NULL,
[AttributeGUID] uniqueidentifier NOT NULL,
[ColumnAlias] nvarchar(100) NOT NULL,
PRIMARY KEY ([RegisteredAttributeGUID])
);
GO
ALTER TABLE [dbo].[RESQLReportRegisteredAttribute] ADD CONSTRAINT [FK_RESQLReportRegisteredAttribute_RESQLReportRegisteredDimension] FOREIGN KEY ([RegisteredDimensionGUID]) REFERENCES [dbo].[RESQLReportRegisteredDimension] ([RegisteredDimensionGUID]); GO
ALTER TABLE [dbo].[RESQLReportRegisteredAttribute] ADD CONSTRAINT [DF_RESQLReportRegisteredDimensionAttribute_SQLReportRegisteredDimensionAttributeGUID] DEFAULT (newid()) FOR [RegisteredAttributeGUID]; GO
ALTER TABLE [dbo].[RESQLReportRegisteredAttribute] ADD CONSTRAINT [DF_RESQLReportRegisteredAttribute_AliasedColumnName] DEFAULT ('') FOR [ColumnAlias]; GO
ALTER TABLE [dbo].[RESQLReportRegisteredAttribute] ADD CONSTRAINT [DF_RESQLReportRegisteredDimensionAttribute_SQLReportRegisteredDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RegisteredDimensionGUID]; GO
ALTER TABLE [dbo].[RESQLReportRegisteredAttribute] ADD CONSTRAINT [DF_RESQLReportRegisteredDimensionAttribute_AttributeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AttributeGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RESQLReportRegisteredDimension ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESQLReportRegisteredDimension] (
[RegisteredDimensionGUID] uniqueidentifier NOT NULL,
[DataViewGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[HierarchyGUID] uniqueidentifier NOT NULL,
[SQLColumnNames] nvarchar(max) NOT NULL,
[KeyColumnName] nvarchar(64) NOT NULL,
[KeyGUID] uniqueidentifier NOT NULL,
[IsKeyColumnVisible] bit NOT NULL,
[KeyJoinType] int NOT NULL,
[IsSecured] bit NOT NULL,
PRIMARY KEY ([RegisteredDimensionGUID])
);
GO
ALTER TABLE [dbo].[RESQLReportRegisteredDimension] ADD CONSTRAINT [FK_RESQLReportRegisteredDimension_DataView] FOREIGN KEY ([DataViewGUID]) REFERENCES [dbo].[DataView] ([DataViewGUID]); GO
ALTER TABLE [dbo].[RESQLReportRegisteredDimension] ADD CONSTRAINT [DF_RESQLReportRegisteredDimension_IsKeyColumnVisible] DEFAULT ((1)) FOR [IsKeyColumnVisible]; GO
ALTER TABLE [dbo].[RESQLReportRegisteredDimension] ADD CONSTRAINT [DF_RESQLReportRegisteredDimension_KeyJoinType] DEFAULT ((0)) FOR [KeyJoinType]; GO
ALTER TABLE [dbo].[RESQLReportRegisteredDimension] ADD CONSTRAINT [DF_RESQLReportRegisteredDimension_IsSecured] DEFAULT ((0)) FOR [IsSecured]; GO
ALTER TABLE [dbo].[RESQLReportRegisteredDimension] ADD CONSTRAINT [DF_RESQLReportRegisteredDimension_HierarchyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HierarchyGUID]; GO
ALTER TABLE [dbo].[RESQLReportRegisteredDimension] ADD CONSTRAINT [DF_RESQLReportRegisteredDimension_RegisteredDimensionGUID] DEFAULT (newid()) FOR [RegisteredDimensionGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RESQLReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESQLReportSetup] (
[SQLReportSetupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
[DataViewGUID] uniqueidentifier NOT NULL,
[IsAutoRefresh] bit NOT NULL,
[IsAutoPivotColumn] bit NOT NULL,
[TableStyleName] nvarchar(64) NOT NULL,
[IsAutoColumnWidth] bit NOT NULL,
[LaunchOption] int NOT NULL,
[IsShowingTotals] bit NOT NULL,
[TopRowCount] int NOT NULL,
[IsGroupBy] bit NOT NULL,
[IsSecurityHashJoin] bit NOT NULL,
PRIMARY KEY ([SQLReportSetupGUID])
);
GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [FK_RESQLReportSetup_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLReportSetup_IsSecurityHashJoin] DEFAULT ((0)) FOR [IsSecurityHashJoin]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLReportSetup_IsGroupBy] DEFAULT ((1)) FOR [IsGroupBy]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLTableReportSetup_SQLReportSetupGUID] DEFAULT (newid()) FOR [SQLReportSetupGUID]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLTableReportSetup_ReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportGUID]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLTableReportSetup_DataViewGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataViewGUID]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLReportSetup_IsAutoRefresh] DEFAULT ((0)) FOR [IsAutoRefresh]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLReportSetup_IsAutoPivotColumn] DEFAULT ((1)) FOR [IsAutoPivotColumn]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLReportSetup_TableStyle] DEFAULT ('Blue') FOR [TableStyleName]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLReportSetup_IsAutoColumnWidth] DEFAULT ((1)) FOR [IsAutoColumnWidth]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLReportSetup_LaunchOption] DEFAULT ((0)) FOR [LaunchOption]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLReportSetup_IsShowingTotals] DEFAULT ((0)) FOR [IsShowingTotals]; GO
ALTER TABLE [dbo].[RESQLReportSetup] ADD CONSTRAINT [DF_RESQLReportSetup_TopRowCount] DEFAULT ((100)) FOR [TopRowCount]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RESRReportFile ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESRReportFile] (
[SRReportFileGUID] uniqueidentifier NOT NULL,
[SRReportSetupGUID] uniqueidentifier NOT NULL,
[FileContent] nvarchar(max) NOT NULL,
PRIMARY KEY ([SRReportFileGUID])
);
GO
ALTER TABLE [dbo].[RESRReportFile] ADD CONSTRAINT [FK_RESRReportFile_RESRReportSetup] FOREIGN KEY ([SRReportSetupGUID]) REFERENCES [dbo].[RESRReportSetup] ([SRReportSetupGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.RESRReportSetup ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESRReportSetup] (
[SRReportSetupGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([SRReportSetupGUID])
);
GO
ALTER TABLE [dbo].[RESRReportSetup] ADD CONSTRAINT [FK_RESRReportSetup_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.RESelector ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESelector] (
[ID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Value] int NOT NULL,
[Type] nvarchar(64) NOT NULL,
[VERSION] timestamp NOT NULL
);
GO
ALTER TABLE [dbo].[RESelector] ADD CONSTRAINT [DF_REBooleanSelector_ID] DEFAULT (newid()) FOR [ID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RESheetConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESheetConfig] (
[SheetGUID] uniqueidentifier NOT NULL,
[ReportGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([SheetGUID])
);
GO
ALTER TABLE [dbo].[RESheetConfig] ADD CONSTRAINT [FK_RESheetConfig_REReport] FOREIGN KEY ([ReportGUID]) REFERENCES [dbo].[REReport] ([ReportGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.RESortingParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[RESortingParameter] (
[ParameterGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[ColumnName] nvarchar(450) NOT NULL,
[Direction] bit NOT NULL,
[SortOrder] int NOT NULL,
PRIMARY KEY ([ParameterGUID])
);
GO
ALTER TABLE [dbo].[RESortingParameter] ADD CONSTRAINT [FK_RESortingParameter_REDataSource1] FOREIGN KEY ([DataSourceGUID]) REFERENCES [dbo].[REDataSource] ([DataSourceGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.RETemplateColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[RETemplateColumn] (
[RETemplateColumnGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[ColumnName] varchar(512) NOT NULL,
[ColumnType] int NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([RETemplateColumnGUID])
);
GO
ALTER TABLE [dbo].[RETemplateColumn] ADD CONSTRAINT [FK__RETemplat__DataS__1B6C8B71] FOREIGN KEY ([DataSourceGUID]) REFERENCES [dbo].[REDataSource] ([DataSourceGUID]); GO
ALTER TABLE [dbo].[RETemplateColumn] ADD CONSTRAINT [DF__RETemplat__Colum__198442FF] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[RETemplateColumn] ADD CONSTRAINT [DF__RETemplat__Colum__1A786738] DEFAULT ((0)) FOR [ColumnType]; GO
ALTER TABLE [dbo].[RETemplateColumn] ADD CONSTRAINT [DF__RETemplat__Displ__1B6C8B71] DEFAULT ((0)) FOR [DisplayOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RETemplateMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[RETemplateMeasure] (
[RETemplateMeasureGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[ColumnName] varchar(512) NOT NULL,
[ColumnType] int NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([RETemplateMeasureGUID])
);
GO
ALTER TABLE [dbo].[RETemplateMeasure] ADD CONSTRAINT [FK__RETemplat__DataS__230DAD39] FOREIGN KEY ([DataSourceGUID]) REFERENCES [dbo].[REDataSource] ([DataSourceGUID]); GO
ALTER TABLE [dbo].[RETemplateMeasure] ADD CONSTRAINT [DF__RETemplat__Colum__212564C7] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[RETemplateMeasure] ADD CONSTRAINT [DF__RETemplat__Colum__22198900] DEFAULT ((0)) FOR [ColumnType]; GO
ALTER TABLE [dbo].[RETemplateMeasure] ADD CONSTRAINT [DF__RETemplat__Displ__230DAD39] DEFAULT ((0)) FOR [DisplayOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ReasonableURL ------------------
---------------------------------------------
CREATE TABLE [dbo].[ReasonableURL] (
[ReasonableURLGUID] uniqueidentifier NOT NULL,
[URL] nvarchar(max) NOT NULL,
[CreatedDate] datetime NOT NULL,
[LastUsedDate] datetime NOT NULL,
[UseCount] int NOT NULL,
PRIMARY KEY ([ReasonableURLGUID])
);
GO
ALTER TABLE [dbo].[ReasonableURL] ADD CONSTRAINT [DF_ReasonableURL_ReasonableURLGUID] DEFAULT (newsequentialid()) FOR [ReasonableURLGUID]; GO
ALTER TABLE [dbo].[ReasonableURL] ADD CONSTRAINT [DF_ReasonableURL_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate]; GO
ALTER TABLE [dbo].[ReasonableURL] ADD CONSTRAINT [DF_ReasonableURL_LastUsedDate] DEFAULT (getdate()) FOR [LastUsedDate]; GO
ALTER TABLE [dbo].[ReasonableURL] ADD CONSTRAINT [DF_ReasonableURL_UseCount] DEFAULT ((0)) FOR [UseCount]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RefreshViewsLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[RefreshViewsLog] (
[RowID] int NOT NULL,
[BrokenViewName] nvarchar(450) NOT NULL,
[BrokenViewDropSQL] nvarchar(450) NOT NULL,
[BrokenViewSelectSQL] nvarchar(450) NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[RefreshViewsLog] ADD CONSTRAINT [DF_RefreshViewsLog_BrokenViewName] DEFAULT ('') FOR [BrokenViewName]; GO
ALTER TABLE [dbo].[RefreshViewsLog] ADD CONSTRAINT [DF_RefreshViewsLog_BrokenViewDropSQL] DEFAULT ('') FOR [BrokenViewDropSQL]; GO
ALTER TABLE [dbo].[RefreshViewsLog] ADD CONSTRAINT [DF_RefreshViewsLog_BrokenViewSelectSQL] DEFAULT ('') FOR [BrokenViewSelectSQL]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ReplicationTable ------------------
---------------------------------------------
CREATE TABLE [dbo].[ReplicationTable] (
[TableName] nvarchar(200) NOT NULL,
[LastRefreshDateTimeUtc] datetime NULL,
[LastRefreshChangeTrackingVersion] bigint NULL,
[ReplicationFrequencyCron] varchar(100) NOT NULL,
[IsDisabled] bit NOT NULL,
[SelectFromQuery] nvarchar(200) NOT NULL,
[LastChangeDateTimeUtc] datetime NULL,
[HangfireQueue] nvarchar(200) NOT NULL,
[BeginChangeTrackingVersion] bigint NOT NULL,
[NumParallelBatches] int NOT NULL,
[ColumnDataJSON] nvarchar(max) NOT NULL,
PRIMARY KEY ([TableName])
);
GO
ALTER TABLE [dbo].[ReplicationTable] ADD CONSTRAINT [DF__Replicati__Repli__0582D584] DEFAULT ('*/5 * * * *') FOR [ReplicationFrequencyCron]; GO
ALTER TABLE [dbo].[ReplicationTable] ADD CONSTRAINT [DF__Replicati__IsDis__0676F9BD] DEFAULT ((0)) FOR [IsDisabled]; GO
ALTER TABLE [dbo].[ReplicationTable] ADD CONSTRAINT [DF__Replicati__Begin__0F02E974] DEFAULT ((0)) FOR [BeginChangeTrackingVersion]; GO
ALTER TABLE [dbo].[ReplicationTable] ADD CONSTRAINT [DF__Replicati__NumPa__0FF70DAD] DEFAULT ((1)) FOR [NumParallelBatches]; GO
ALTER TABLE [dbo].[ReplicationTable] ADD CONSTRAINT [DF__Replicati__Selec__16AD6186] DEFAULT ('') FOR [SelectFromQuery]; GO
ALTER TABLE [dbo].[ReplicationTable] ADD CONSTRAINT [DF__Replicati__Hangf__4104595C] DEFAULT ('default') FOR [HangfireQueue]; GO
ALTER TABLE [dbo].[ReplicationTable] ADD CONSTRAINT [DF__Replicati__Colum__65634C11] DEFAULT ('[]') FOR [ColumnDataJSON]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ReplicationTableHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[ReplicationTableHistory] (
[RowID] bigint NOT NULL,
[ReplicationTableName] nvarchar(200) NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[Description] nvarchar(1000) NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[ReplicationTableHistory] ADD CONSTRAINT [DF__Replicati__DateT__5DAAB9AB] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[ReplicationTableHistory] ADD CONSTRAINT [DF__Replicati__Descr__5E9EDDE4] DEFAULT ('') FOR [Description]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ReplicationTableTrackingTable ------------------
---------------------------------------------
CREATE TABLE [dbo].[ReplicationTableTrackingTable] (
[BaseTableName] nvarchar(200) NOT NULL,
[TableName] nvarchar(200) NOT NULL,
[LastRefreshChangeTrackingVersion] bigint NULL,
PRIMARY KEY ([BaseTableName], [TableName])
);
GO
ALTER TABLE [dbo].[ReplicationTableTrackingTable] ADD CONSTRAINT [FK__Replicati__BaseT__00540C13] FOREIGN KEY ([BaseTableName]) REFERENCES [dbo].[ReplicationTable] ([TableName]); GO
---------------------------------------------
---------------------------------------------
-- dbo.ReportArchiveEntry ------------------
---------------------------------------------
CREATE TABLE [dbo].[ReportArchiveEntry] (
[ReportArchiveEntryGUID] uniqueidentifier NOT NULL,
[ReportArchivePath] nvarchar(1000) NOT NULL,
[ReportArchiveType] int NOT NULL,
[ReportArchiveDate] datetime NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[UserName] nvarchar(128) NOT NULL,
[DateArchivedUtc] datetime NOT NULL,
[NotificationMessageGUID] uniqueidentifier NOT NULL,
[IsS3] bit NOT NULL,
PRIMARY KEY ([ReportArchiveEntryGUID])
);
GO
ALTER TABLE [dbo].[ReportArchiveEntry] ADD CONSTRAINT [DF__ReportArc__Repor__030D1E07] DEFAULT (getdate()) FOR [ReportArchiveDate]; GO
ALTER TABLE [dbo].[ReportArchiveEntry] ADD CONSTRAINT [DF__ReportArch__IsS3__0D9B5A9D] DEFAULT ((0)) FOR [IsS3]; GO
ALTER TABLE [dbo].[ReportArchiveEntry] ADD CONSTRAINT [DF__ReportArc__DateA__369A42D4] DEFAULT (getutcdate()) FOR [DateArchivedUtc]; GO
ALTER TABLE [dbo].[ReportArchiveEntry] ADD CONSTRAINT [DF__ReportArc__Notif__42C34FF3] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [NotificationMessageGUID]; GO
ALTER TABLE [dbo].[ReportArchiveEntry] ADD CONSTRAINT [DF__ReportArc__UserG__4FE27FBC] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[ReportArchiveEntry] ADD CONSTRAINT [DF__ReportArc__UserN__50D6A3F5] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[ReportArchiveEntry] ADD CONSTRAINT [DF__ReportArc__Repor__779B6B5B] DEFAULT (newid()) FOR [ReportArchiveEntryGUID]; GO
ALTER TABLE [dbo].[ReportArchiveEntry] ADD CONSTRAINT [DF__ReportArc__Repor__788F8F94] DEFAULT ('') FOR [ReportArchivePath]; GO
ALTER TABLE [dbo].[ReportArchiveEntry] ADD CONSTRAINT [DF__ReportArc__Repor__7983B3CD] DEFAULT ((0)) FOR [ReportArchiveType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ReportArchiveEntryDetail ------------------
---------------------------------------------
CREATE TABLE [dbo].[ReportArchiveEntryDetail] (
[ReportArchiveEntryDetailGUID] uniqueidentifier NOT NULL,
[ReportArchiveEntryGUID] uniqueidentifier NOT NULL,
[ReportArchiveDetailAQN] nvarchar(400) NOT NULL,
[ReportArchiveDetailXML] xml NOT NULL,
PRIMARY KEY ([ReportArchiveEntryDetailGUID])
);
GO
ALTER TABLE [dbo].[ReportArchiveEntryDetail] ADD CONSTRAINT [FK__ReportArc__Repor__7F3C8D23] FOREIGN KEY ([ReportArchiveEntryGUID]) REFERENCES [dbo].[ReportArchiveEntry] ([ReportArchiveEntryGUID]); GO
ALTER TABLE [dbo].[ReportArchiveEntryDetail] ADD CONSTRAINT [DF__ReportArc__Repor__0030B15C] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReportArchiveEntryGUID]; GO
ALTER TABLE [dbo].[ReportArchiveEntryDetail] ADD CONSTRAINT [DF__ReportArc__Repor__0124D595] DEFAULT ('') FOR [ReportArchiveDetailAQN]; GO
ALTER TABLE [dbo].[ReportArchiveEntryDetail] ADD CONSTRAINT [DF__ReportArc__Repor__0218F9CE] DEFAULT ('') FOR [ReportArchiveDetailXML]; GO
ALTER TABLE [dbo].[ReportArchiveEntryDetail] ADD CONSTRAINT [DF__ReportArc__Repor__7E4868EA] DEFAULT (newid()) FOR [ReportArchiveEntryDetailGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RoleAssignmentAutomationHistoryLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[RoleAssignmentAutomationHistoryLog] (
[RoleAssignmentAutomationHistoryLogGuid] uniqueidentifier NOT NULL,
[ImportDate] datetime NOT NULL,
[Status] varchar(7) NOT NULL,
[ImportedRowCount] int NOT NULL,
[NewAssignments] int NOT NULL,
[RemovedAssignments] int NOT NULL,
[InvalidAssignments] int NOT NULL,
PRIMARY KEY ([RoleAssignmentAutomationHistoryLogGuid])
);
GO
ALTER TABLE [dbo].[RoleAssignmentAutomationHistoryLog] ADD CONSTRAINT [DF__RoleAssig__RoleA__23E03B04] DEFAULT (newid()) FOR [RoleAssignmentAutomationHistoryLogGuid]; GO
ALTER TABLE [dbo].[RoleAssignmentAutomationHistoryLog] ADD CONSTRAINT [DF__RoleAssig__Impor__24D45F3D] DEFAULT ((0)) FOR [ImportedRowCount]; GO
ALTER TABLE [dbo].[RoleAssignmentAutomationHistoryLog] ADD CONSTRAINT [DF__RoleAssig__NewAs__25C88376] DEFAULT ((0)) FOR [NewAssignments]; GO
ALTER TABLE [dbo].[RoleAssignmentAutomationHistoryLog] ADD CONSTRAINT [DF__RoleAssig__Remov__26BCA7AF] DEFAULT ((0)) FOR [RemovedAssignments]; GO
ALTER TABLE [dbo].[RoleAssignmentAutomationHistoryLog] ADD CONSTRAINT [DF__RoleAssig__Inval__27B0CBE8] DEFAULT ((0)) FOR [InvalidAssignments]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RoleVisibilityRule ------------------
---------------------------------------------
CREATE TABLE [dbo].[RoleVisibilityRule] (
[RoleVisibilityRuleGUID] uniqueidentifier NOT NULL,
[PermissionSetID] tinyint NOT NULL,
[RoleID] smallint NOT NULL,
[UserGroupGUID] uniqueidentifier NOT NULL,
[IsVisible] bit NOT NULL,
PRIMARY KEY ([RoleVisibilityRuleGUID])
);
GO
ALTER TABLE [dbo].[RoleVisibilityRule] ADD CONSTRAINT [DF__RoleVisib__RoleV__2567FB65] DEFAULT (newid()) FOR [RoleVisibilityRuleGUID]; GO
ALTER TABLE [dbo].[RoleVisibilityRule] ADD CONSTRAINT [DF__RoleVisib__Permi__265C1F9E] DEFAULT ((0)) FOR [PermissionSetID]; GO
ALTER TABLE [dbo].[RoleVisibilityRule] ADD CONSTRAINT [DF__RoleVisib__RoleI__275043D7] DEFAULT ((0)) FOR [RoleID]; GO
ALTER TABLE [dbo].[RoleVisibilityRule] ADD CONSTRAINT [DF__RoleVisib__IsVis__29388C49] DEFAULT ((1)) FOR [IsVisible]; GO
ALTER TABLE [dbo].[RoleVisibilityRule] ADD CONSTRAINT [DF__RoleVisib__UserG__28446810] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGroupGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RuleAction ------------------
---------------------------------------------
CREATE TABLE [dbo].[RuleAction] (
[RuleActionGUID] uniqueidentifier NOT NULL,
[RuleSetGUID] uniqueidentifier NOT NULL,
[ExecutionOrder] int NOT NULL,
[RuleActionTypeAQN] nvarchar(450) NOT NULL,
[RuleActionTypeConfigXML] xml NOT NULL,
PRIMARY KEY ([RuleActionGUID])
);
CREATE XML INDEX [es19833_RuleActionTypeConfigXML] ON [dbo].[RuleAction] ([RuleActionTypeConfigXML]);
GO
ALTER TABLE [dbo].[RuleAction] ADD CONSTRAINT [FK_RuleAction_RuleSet] FOREIGN KEY ([RuleSetGUID]) REFERENCES [dbo].[RuleSet] ([RuleSetGUID]); GO
ALTER TABLE [dbo].[RuleAction] ADD CONSTRAINT [DF_RuleAction_RuleActionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RuleActionGUID]; GO
ALTER TABLE [dbo].[RuleAction] ADD CONSTRAINT [DF_RuleAction_RuleSetGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RuleSetGUID]; GO
ALTER TABLE [dbo].[RuleAction] ADD CONSTRAINT [DF_RuleAction_ExecutionOrder] DEFAULT ((0)) FOR [ExecutionOrder]; GO
ALTER TABLE [dbo].[RuleAction] ADD CONSTRAINT [DF_RuleAction_RuleActionTypeAQN] DEFAULT ('') FOR [RuleActionTypeAQN]; GO
ALTER TABLE [dbo].[RuleAction] ADD CONSTRAINT [DF_RuleAction_RuleActionTypeConfigXML] DEFAULT ('') FOR [RuleActionTypeConfigXML]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RuleGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[RuleGroup] (
[RuleGroupGUID] uniqueidentifier NOT NULL,
[RuleSetGUID] uniqueidentifier NOT NULL,
[GroupType] int NOT NULL,
[DisplayOrder] int NOT NULL,
[ParentRuleGroupGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([RuleGroupGUID])
);
GO
ALTER TABLE [dbo].[RuleGroup] ADD CONSTRAINT [FK_RuleGroup_RuleSet] FOREIGN KEY ([RuleSetGUID]) REFERENCES [dbo].[RuleSet] ([RuleSetGUID]); GO
ALTER TABLE [dbo].[RuleGroup] ADD CONSTRAINT [DF_RuleGroup_RuleGroupGUID] DEFAULT (newid()) FOR [RuleGroupGUID]; GO
ALTER TABLE [dbo].[RuleGroup] ADD CONSTRAINT [DF_Table_1_Type] DEFAULT ((0)) FOR [GroupType]; GO
ALTER TABLE [dbo].[RuleGroup] ADD CONSTRAINT [DF_RuleGroup_DisplayOrder] DEFAULT ((-1)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[RuleGroup] ADD CONSTRAINT [DF_RuleGroup_RuleSetGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RuleSetGUID]; GO
ALTER TABLE [dbo].[RuleGroup] ADD CONSTRAINT [DF_RuleGroup_ParentRuleGroupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentRuleGroupGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RuleItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[RuleItem] (
[RuleGUID] uniqueidentifier NOT NULL,
[RuleGroupGUID] uniqueidentifier NOT NULL,
[RuleTypeAQN] nvarchar(450) NOT NULL,
[RuleTypeConfigXML] xml NOT NULL,
[DisplayOrder] int NOT NULL,
[Name] nvarchar(100) NOT NULL,
PRIMARY KEY ([RuleGUID])
);
CREATE NONCLUSTERED INDEX [NC_RuleItem_RuleGroupGUID] ON [dbo].[RuleItem] ([RuleGroupGUID]) INCLUDE ([RuleTypeConfigXML]);
GO
ALTER TABLE [dbo].[RuleItem] ADD CONSTRAINT [FK_Rule_RuleGroup] FOREIGN KEY ([RuleGroupGUID]) REFERENCES [dbo].[RuleGroup] ([RuleGroupGUID]); GO
ALTER TABLE [dbo].[RuleItem] ADD CONSTRAINT [DF_Rule_RuleGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RuleGUID]; GO
ALTER TABLE [dbo].[RuleItem] ADD CONSTRAINT [DF_Rule_RuleTypeAQN] DEFAULT ('') FOR [RuleTypeAQN]; GO
ALTER TABLE [dbo].[RuleItem] ADD CONSTRAINT [DF_Rule_RuleTypeConfigXML] DEFAULT ('') FOR [RuleTypeConfigXML]; GO
ALTER TABLE [dbo].[RuleItem] ADD CONSTRAINT [DF_Rule_DisplayOrder] DEFAULT ((-1)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[RuleItem] ADD CONSTRAINT [DF_Rule_RuleGroupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RuleGroupGUID]; GO
ALTER TABLE [dbo].[RuleItem] ADD CONSTRAINT [DF__RuleItem__Name__54D0BCAD] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.RuleSet ------------------
---------------------------------------------
CREATE TABLE [dbo].[RuleSet] (
[RuleSetGUID] uniqueidentifier NOT NULL,
[Category] nvarchar(100) NOT NULL,
[ExecutionOrder] int NOT NULL,
[RootRuleGroupGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(800) NOT NULL,
[RuleSetID] int NOT NULL,
[Tag] nvarchar(100) NOT NULL,
[MetadataXML] nvarchar(max) NOT NULL,
[MetadataAssemblyQualifiedName] nvarchar(400) NOT NULL,
PRIMARY KEY ([RuleSetGUID])
);
CREATE NONCLUSTERED INDEX [NC_RuleSet_Category] ON [dbo].[RuleSet] ([Category]);
CREATE NONCLUSTERED INDEX [NC_RS_RuleSetID_Category] ON [dbo].[RuleSet] ([RuleSetID]) INCLUDE ([Category]);
GO
ALTER TABLE [dbo].[RuleSet] ADD CONSTRAINT [DF_RuleSet_RuleSetGUID] DEFAULT (newid()) FOR [RuleSetGUID]; GO
ALTER TABLE [dbo].[RuleSet] ADD CONSTRAINT [DF_RuleSet_Category] DEFAULT ('') FOR [Category]; GO
ALTER TABLE [dbo].[RuleSet] ADD CONSTRAINT [DF_RuleSet_ExecutionOrder] DEFAULT ((-1)) FOR [ExecutionOrder]; GO
ALTER TABLE [dbo].[RuleSet] ADD CONSTRAINT [DF__RuleSet__Name__3ABA800B] DEFAULT ('Term') FOR [Name]; GO
ALTER TABLE [dbo].[RuleSet] ADD CONSTRAINT [DF__RuleSet__Discrip__3BAEA444] DEFAULT ('New Term') FOR [Description]; GO
ALTER TABLE [dbo].[RuleSet] ADD CONSTRAINT [DF_RuleSet_RootRuleGroupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RootRuleGroupGUID]; GO
ALTER TABLE [dbo].[RuleSet] ADD CONSTRAINT [DF__RuleSet__Tag__787A1D67] DEFAULT ('') FOR [Tag]; GO
ALTER TABLE [dbo].[RuleSet] ADD CONSTRAINT [DF__RuleSet__Metadat__7E32F6BD] DEFAULT ('') FOR [MetadataXML]; GO
ALTER TABLE [dbo].[RuleSet] ADD CONSTRAINT [DF__RuleSet__Metadat__7F271AF6] DEFAULT ('') FOR [MetadataAssemblyQualifiedName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.S3AutomationNotification ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3AutomationNotification] (
[SecurityAutomationNotificationGUID] uniqueidentifier NOT NULL,
[RecipientGuid] uniqueidentifier NOT NULL,
PRIMARY KEY ([SecurityAutomationNotificationGUID])
);
GO
ALTER TABLE [dbo].[S3AutomationNotification] ADD CONSTRAINT [DF__SecurityA__Secur__378675A7] DEFAULT (newid()) FOR [SecurityAutomationNotificationGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.S3AutomationRole ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3AutomationRole] (
[SecurityAutomationRoleGUID] uniqueidentifier NOT NULL,
[UserRoleGUID] uniqueidentifier NOT NULL,
[ColumnName] nvarchar(100) NOT NULL,
PRIMARY KEY ([SecurityAutomationRoleGUID])
);
GO
ALTER TABLE [dbo].[S3AutomationRole] ADD CONSTRAINT [FK_SecurityAutomationRole_UserRoleGUID] FOREIGN KEY ([UserRoleGUID]) REFERENCES [dbo].[UserRole] ([UserRoleGUID]); GO
ALTER TABLE [dbo].[S3AutomationRole] ADD CONSTRAINT [DF__SecurityA__Secur__3A62E252] DEFAULT (newid()) FOR [SecurityAutomationRoleGUID]; GO
ALTER TABLE [dbo].[S3AutomationRole] ADD CONSTRAINT [DF__SecurityA__Colum__3B57068B] DEFAULT ('') FOR [ColumnName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.S3IdentityLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3IdentityLink] (
[MemberGUID] uniqueidentifier NOT NULL,
[GroupingGUID] uniqueidentifier NOT NULL,
[Fullpath] varchar(800) NOT NULL,
[Distance] int NOT NULL,
[Version] timestamp NOT NULL,
PRIMARY KEY ([MemberGUID], [GroupingGUID], [Fullpath])
);
CREATE NONCLUSTERED INDEX [IX_S3IdentityLink] ON [dbo].[S3IdentityLink] ([GroupingGUID], [MemberGUID]);
GO
---------------------------------------------
---------------------------------------------
-- dbo.S3Loot ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3Loot] (
[LootID] nvarchar(128) NOT NULL,
[PermissionSetID] smallint NOT NULL,
[LootGroupPrefix] nvarchar(128) NULL,
PRIMARY KEY ([LootID])
);
GO
ALTER TABLE [dbo].[S3Loot] ADD CONSTRAINT [DF_S3Loot_LootGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LootID]; GO
ALTER TABLE [dbo].[S3Loot] ADD CONSTRAINT [DF_S3Loot_PermissionSetID] DEFAULT ((0)) FOR [PermissionSetID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.S3LootGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3LootGroup] (
[LootID] nvarchar(128) NOT NULL,
[LootGroupID] nvarchar(128) NOT NULL,
PRIMARY KEY ([LootID], [LootGroupID])
);
CREATE NONCLUSTERED INDEX [IX_S3LootGroup] ON [dbo].[S3LootGroup] ([LootGroupID], [LootID]);
GO
---------------------------------------------
---------------------------------------------
-- dbo.S3LootRefreshLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3LootRefreshLog] (
[RowID] bigint NOT NULL,
[PlanGUID] uniqueidentifier NOT NULL,
[OldCachedLootID] nvarchar(128) NOT NULL,
[NewCachedLootID] nvarchar(128) NOT NULL,
[DateRefreshed] datetime NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[S3LootRefreshLog] ADD CONSTRAINT [DF_S3LootRefreshLog_PlanGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanGUID]; GO
ALTER TABLE [dbo].[S3LootRefreshLog] ADD CONSTRAINT [DF_S3LootRefreshLog_OldCachedLootID] DEFAULT ('') FOR [OldCachedLootID]; GO
ALTER TABLE [dbo].[S3LootRefreshLog] ADD CONSTRAINT [DF_S3LootRefreshLog_NewCachedLootID] DEFAULT ('') FOR [NewCachedLootID]; GO
ALTER TABLE [dbo].[S3LootRefreshLog] ADD CONSTRAINT [DF_S3LootRefreshLog_DateRefreshed] DEFAULT (getdate()) FOR [DateRefreshed]; GO
---------------------------------------------
---------------------------------------------
-- dbo.S3Permission ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3Permission] (
[PermissionSetID] smallint NOT NULL,
[RoleID] smallint NOT NULL,
[Weight] tinyint NOT NULL,
[ReadValue] bit NULL,
[WriteValue] bit NULL,
[SecureValue] bit NULL,
[CreateValue] bit NULL,
[DeleteValue] bit NULL,
[ReadAllowPts] decimal NOT NULL,
[ReadDenyPts] decimal NOT NULL,
[WriteAllowPts] decimal NOT NULL,
[WriteDenyPts] decimal NOT NULL,
[SecureAllowPts] decimal NOT NULL,
[SecureDenyPts] decimal NOT NULL,
[CreateAllowPts] decimal NOT NULL,
[CreateDenyPts] decimal NOT NULL,
[DeleteAllowPts] decimal NOT NULL,
[DeleteDenyPts] decimal NOT NULL,
PRIMARY KEY ([PermissionSetID], [RoleID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.S3PermissionSet ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3PermissionSet] (
[PermissionSetID] smallint NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] varchar(max) NOT NULL,
[MetaForUpgrade] varchar(max) NULL,
[IsLocked] bit NOT NULL,
PRIMARY KEY ([PermissionSetID])
);
GO
ALTER TABLE [dbo].[S3PermissionSet] ADD CONSTRAINT [DF_S3PermissionSet_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[S3PermissionSet] ADD CONSTRAINT [DF_S3PermissionSet_IsLocked] DEFAULT ((0)) FOR [IsLocked]; GO
---------------------------------------------
---------------------------------------------
-- dbo.S3RoleAssignment ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3RoleAssignment] (
[RowID] int NOT NULL,
[IdentityGUID] uniqueidentifier NOT NULL,
[RoleID] smallint NOT NULL,
[LootGroupID] nvarchar(128) NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[IsMarkedDeleted] bit NOT NULL,
[LootGroupPrefix] nvarchar(128) NULL,
PRIMARY KEY ([IdentityGUID], [RoleID], [LootGroupID])
);
CREATE NONCLUSTERED INDEX [IX_S3RoleAssignment] ON [dbo].[S3RoleAssignment] ([LootGroupID], [RoleID], [IdentityGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [UX_S3RoleAssignment] ON [dbo].[S3RoleAssignment] ([RowID]);
GO
ALTER TABLE [dbo].[S3RoleAssignment] ADD CONSTRAINT [DF_S3RoleAssignment_IsDeleted] DEFAULT ((0)) FOR [IsMarkedDeleted]; GO
ALTER TABLE [dbo].[S3RoleAssignment] ADD CONSTRAINT [DF_S3RoleAssignment_HistoryItemGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryItemGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.S3SimplePermission ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3SimplePermission] (
[PermissionGUID] uniqueidentifier NOT NULL,
[LootID] uniqueidentifier NOT NULL,
[IdentityGUID] uniqueidentifier NOT NULL,
[ReadValue] bit NOT NULL,
[WriteValue] bit NOT NULL,
[SecureValue] bit NOT NULL,
PRIMARY KEY ([PermissionGUID])
);
CREATE NONCLUSTERED INDEX [IX_S3SimplePermission_ByLootIdentity] ON [dbo].[S3SimplePermission] ([LootID], [IdentityGUID]) INCLUDE ([PermissionGUID], [ReadValue], [WriteValue], [SecureValue]);
CREATE NONCLUSTERED INDEX [IX_S3SimplePermission_ByIdentityLoot] ON [dbo].[S3SimplePermission] ([IdentityGUID], [LootID]) INCLUDE ([ReadValue], [WriteValue]);
GO
ALTER TABLE [dbo].[S3SimplePermission] ADD CONSTRAINT [DF_S3SimplePermission_PermissionGUID] DEFAULT (newid()) FOR [PermissionGUID]; GO
ALTER TABLE [dbo].[S3SimplePermission] ADD CONSTRAINT [DF_S3SimplePermission_LootID] DEFAULT (newid()) FOR [LootID]; GO
ALTER TABLE [dbo].[S3SimplePermission] ADD CONSTRAINT [DF_S3SimplePermission_IdentityGUID] DEFAULT (newid()) FOR [IdentityGUID]; GO
ALTER TABLE [dbo].[S3SimplePermission] ADD CONSTRAINT [DF_S3SimplePermission_ReadValue] DEFAULT ('0') FOR [ReadValue]; GO
ALTER TABLE [dbo].[S3SimplePermission] ADD CONSTRAINT [DF_S3SimplePermission_WriteValue] DEFAULT ('0') FOR [WriteValue]; GO
ALTER TABLE [dbo].[S3SimplePermission] ADD CONSTRAINT [DF_S3SimplePermission_SecureValue] DEFAULT ('0') FOR [SecureValue]; GO
---------------------------------------------
---------------------------------------------
-- dbo.S3SimplePermissionDefault ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3SimplePermissionDefault] (
[EntityType] int NOT NULL,
[IdentityGUID] uniqueidentifier NOT NULL,
[ReadValue] bit NOT NULL,
[WriteValue] bit NOT NULL,
[SecureValue] bit NOT NULL,
PRIMARY KEY ([EntityType], [IdentityGUID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.S3UserACLRegenRequest ------------------
---------------------------------------------
CREATE TABLE [dbo].[S3UserACLRegenRequest] (
[RequestGUID] uniqueidentifier NOT NULL,
[IssuedAt] datetime NOT NULL,
PRIMARY KEY ([RequestGUID])
);
GO
ALTER TABLE [dbo].[S3UserACLRegenRequest] ADD CONSTRAINT [DF__S3UserACL__Reque__4734CBFC] DEFAULT (newid()) FOR [RequestGUID]; GO
ALTER TABLE [dbo].[S3UserACLRegenRequest] ADD CONSTRAINT [DF__S3UserACL__Issue__4828F035] DEFAULT (getdate()) FOR [IssuedAt]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SAScenarioShockLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[SAScenarioShockLink] (
[LinkGUID] uniqueidentifier NOT NULL,
[ScenarioGUID] uniqueidentifier NOT NULL,
[ShockGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([LinkGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IU_ScenarioGUID_ShockGUID] ON [dbo].[SAScenarioShockLink] ([ScenarioGUID], [ShockGUID]);
GO
ALTER TABLE [dbo].[SAScenarioShockLink] ADD CONSTRAINT [DF_SAScenarioShockLink_LinkGUID] DEFAULT (newid()) FOR [LinkGUID]; GO
ALTER TABLE [dbo].[SAScenarioShockLink] ADD CONSTRAINT [DF_SAScenarioShockLink_ScenarioGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScenarioGUID]; GO
ALTER TABLE [dbo].[SAScenarioShockLink] ADD CONSTRAINT [DF_SAScenarioShockLink_ShockGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ShockGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SAShock ------------------
---------------------------------------------
CREATE TABLE [dbo].[SAShock] (
[ShockGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[PlanFilter] nvarchar(max) NOT NULL,
[AuthorGUID] uniqueidentifier NOT NULL,
[DateCreated] datetime NOT NULL,
[Comment] nvarchar(max) NOT NULL,
[ValueType] smallint NOT NULL,
[IsDeleted] bit NOT NULL,
[ShockAssumptionTypeGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ShockGUID])
);
GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF__SAShock__ShockAs__06F35711] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ShockAssumptionTypeGUID]; GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF_SAShock_ShockGUID] DEFAULT (newid()) FOR [ShockGUID]; GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF_SAShock_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF_SAShock_PlanFilter] DEFAULT ('') FOR [PlanFilter]; GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF_SAShock_DateCreated] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF_SAShock_Comment] DEFAULT ('') FOR [Comment]; GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF_SAShock_ValueType] DEFAULT ((0)) FOR [ValueType]; GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF__FactAccShock__IsDeleted] DEFAULT ((0)) FOR [IsDeleted]; GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF_SAShock_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[SAShock] ADD CONSTRAINT [DF_SAShock_AuthorGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SAShockAssumptionColumnConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[SAShockAssumptionColumnConfig] (
[ShockAssumptionColumnConfigID] int NOT NULL,
[ShockAssumptionTypeGUID] uniqueidentifier NOT NULL,
[DataIndexName] nvarchar(50) NOT NULL,
[DisplayName] nvarchar(50) NOT NULL,
[IsHiddenColumn] bit NOT NULL,
[DimensionGuid] uniqueidentifier NOT NULL,
PRIMARY KEY ([ShockAssumptionColumnConfigID])
);
GO
ALTER TABLE [dbo].[SAShockAssumptionColumnConfig] ADD CONSTRAINT [DF__ShockAssu__Shock__022EA1F4] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ShockAssumptionTypeGUID]; GO
ALTER TABLE [dbo].[SAShockAssumptionColumnConfig] ADD CONSTRAINT [DF_ShockAssumptionColumnConfig_DataIndexName] DEFAULT ('') FOR [DataIndexName]; GO
ALTER TABLE [dbo].[SAShockAssumptionColumnConfig] ADD CONSTRAINT [DF_ShockAssumptionColumnConfig_DisplayName] DEFAULT ('') FOR [DisplayName]; GO
ALTER TABLE [dbo].[SAShockAssumptionColumnConfig] ADD CONSTRAINT [DF_ShockAssumptionColumnConfig_IsHiddenColumn] DEFAULT ((0)) FOR [IsHiddenColumn]; GO
ALTER TABLE [dbo].[SAShockAssumptionColumnConfig] ADD CONSTRAINT [DF__SAShockAs__Dimen__5A75B655] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGuid]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SAShockAssumptionType ------------------
---------------------------------------------
CREATE TABLE [dbo].[SAShockAssumptionType] (
[ShockAssumptionTypeGUID] uniqueidentifier NOT NULL,
[AssumptionGroupID] smallint NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[BaseTableName] nvarchar(50) NOT NULL,
[ShockTableName] nvarchar(50) NOT NULL,
[WhereClauseXML] xml NOT NULL,
[DisplayFormat] nvarchar(50) NOT NULL,
[IsPercentage] bit NOT NULL,
[FormulaColumnName] nvarchar(max) NOT NULL,
[CommentColumnName] nvarchar(max) NOT NULL,
PRIMARY KEY ([ShockAssumptionTypeGUID])
);
GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF_dbo.SAShockAssumptionType_FormulaColumnName] DEFAULT ('') FOR [FormulaColumnName]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF_dbo.SAShockAssumptionType_CommentColumnName] DEFAULT ('') FOR [CommentColumnName]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF__ShockAssu__Shock__77B11381] DEFAULT (newid()) FOR [ShockAssumptionTypeGUID]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF_dbo.ShockAssumptionType_AssumptionGroupID] DEFAULT ((0)) FOR [AssumptionGroupID]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF__ShockAssu__PlanT__79995BF3] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF_dbo.ShockAssumptionType_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF_dbo.ShockAssumptionType_BaseTableName] DEFAULT ('') FOR [BaseTableName]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF_dbo.ShockAssumptionType_ShockTableName] DEFAULT ('') FOR [ShockTableName]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF_dbo.ShockAssumptionType_WhereClauseXML] DEFAULT ('') FOR [WhereClauseXML]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF_dbo.ShockAssumptionType_DisplayFormat] DEFAULT ('') FOR [DisplayFormat]; GO
ALTER TABLE [dbo].[SAShockAssumptionType] ADD CONSTRAINT [DF_dbo.ShockAssumptionType_IsPercentage] DEFAULT ((0)) FOR [IsPercentage]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SAShockViewByOptions ------------------
---------------------------------------------
CREATE TABLE [dbo].[SAShockViewByOptions] (
[RowID] bigint NOT NULL,
[ShockGUID] uniqueidentifier NOT NULL,
[ChkPatientClass] bit NOT NULL,
[ChkServiceLineRollup] bit NOT NULL,
[ChkServiceLine] bit NOT NULL,
[ChkMedicalSurgical] bit NOT NULL,
[ChkAgeCohort] bit NOT NULL,
[ChkPayorOrPayorGroup] bit NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[SAShockViewByOptions] ADD CONSTRAINT [FK_SAShockViewByOptions_SAShock] FOREIGN KEY ([ShockGUID]) REFERENCES [dbo].[SAShock] ([ShockGUID]); GO
ALTER TABLE [dbo].[SAShockViewByOptions] ADD CONSTRAINT [DF_SAShockViewByOptions_ShockGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ShockGUID]; GO
ALTER TABLE [dbo].[SAShockViewByOptions] ADD CONSTRAINT [DF_SAShockViewByOptions_ChkPatientClass] DEFAULT ((0)) FOR [ChkPatientClass]; GO
ALTER TABLE [dbo].[SAShockViewByOptions] ADD CONSTRAINT [DF_SAShockViewByOptions_ChkServiceLineRollup] DEFAULT ((0)) FOR [ChkServiceLineRollup]; GO
ALTER TABLE [dbo].[SAShockViewByOptions] ADD CONSTRAINT [DF_SAShockViewByOptions_ChkServiceLine] DEFAULT ((0)) FOR [ChkServiceLine]; GO
ALTER TABLE [dbo].[SAShockViewByOptions] ADD CONSTRAINT [DF_SAShockViewByOptions_ChkMedicalSurgical] DEFAULT ((0)) FOR [ChkMedicalSurgical]; GO
ALTER TABLE [dbo].[SAShockViewByOptions] ADD CONSTRAINT [DF_SAShockViewByOptions_ChkAgeCohort] DEFAULT ((0)) FOR [ChkAgeCohort]; GO
ALTER TABLE [dbo].[SAShockViewByOptions] ADD CONSTRAINT [DF_SAShockViewByOptions_ChkPayorOrPayorGroup] DEFAULT ((0)) FOR [ChkPayorOrPayorGroup]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SBKeyColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[SBKeyColumn] (
[SBKeyColumnGUID] uniqueidentifier NOT NULL,
[SBTargetGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(400) NOT NULL,
[VERSION] timestamp NOT NULL,
PRIMARY KEY ([SBKeyColumnGUID])
);
GO
ALTER TABLE [dbo].[SBKeyColumn] ADD CONSTRAINT [DF_SBKeyColumn_SBKeyColumnGUID] DEFAULT (newid()) FOR [SBKeyColumnGUID]; GO
ALTER TABLE [dbo].[SBKeyColumn] ADD CONSTRAINT [DF_SBKeyColumn_SBTargetGUID] DEFAULT (newid()) FOR [SBTargetGUID]; GO
ALTER TABLE [dbo].[SBKeyColumn] ADD CONSTRAINT [DF_SBKeyColumn_Name] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SBProject ------------------
---------------------------------------------
CREATE TABLE [dbo].[SBProject] (
[SBProjectGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(400) NOT NULL,
[TemplateFilePath] nvarchar(400) NOT NULL,
[Context] nvarchar(2000) NOT NULL,
[VERSION] timestamp NOT NULL,
PRIMARY KEY ([SBProjectGUID])
);
GO
ALTER TABLE [dbo].[SBProject] ADD CONSTRAINT [DF_SBProject_SBProjectGUID] DEFAULT (newid()) FOR [SBProjectGUID]; GO
ALTER TABLE [dbo].[SBProject] ADD CONSTRAINT [DF_SBProject_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SBProject] ADD CONSTRAINT [DF_SBProject_TemplateFilePath] DEFAULT ('') FOR [TemplateFilePath]; GO
ALTER TABLE [dbo].[SBProject] ADD CONSTRAINT [DF_SBProject_Context] DEFAULT ('') FOR [Context]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SBSource ------------------
---------------------------------------------
CREATE TABLE [dbo].[SBSource] (
[SBSourceGUID] uniqueidentifier NOT NULL,
[SQLQuery] nvarchar(max) NOT NULL,
[SBProjectGUID] uniqueidentifier NOT NULL,
[VERSION] timestamp NOT NULL,
PRIMARY KEY ([SBSourceGUID])
);
GO
ALTER TABLE [dbo].[SBSource] ADD CONSTRAINT [DF_SBSource_SBSource] DEFAULT (newid()) FOR [SBSourceGUID]; GO
ALTER TABLE [dbo].[SBSource] ADD CONSTRAINT [DF_SBSource_SQLQuery] DEFAULT ('') FOR [SQLQuery]; GO
ALTER TABLE [dbo].[SBSource] ADD CONSTRAINT [DF_SBSource_SBProjectGUID] DEFAULT (newid()) FOR [SBProjectGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SBTarget ------------------
---------------------------------------------
CREATE TABLE [dbo].[SBTarget] (
[SBTargetGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(400) NOT NULL,
[TableName] nvarchar(400) NOT NULL,
[SBProjectGUID] uniqueidentifier NOT NULL,
[VERSION] timestamp NOT NULL,
PRIMARY KEY ([SBTargetGUID])
);
GO
ALTER TABLE [dbo].[SBTarget] ADD CONSTRAINT [DF_SBTarget_SBTargetGUID] DEFAULT (newid()) FOR [SBTargetGUID]; GO
ALTER TABLE [dbo].[SBTarget] ADD CONSTRAINT [DF_SBTarget_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SBTarget] ADD CONSTRAINT [DF_SBTarget_TableName] DEFAULT ('') FOR [TableName]; GO
ALTER TABLE [dbo].[SBTarget] ADD CONSTRAINT [DF_SBTarget_SBProjectGUID] DEFAULT (newid()) FOR [SBProjectGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SBValueColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[SBValueColumn] (
[SBValueColumnGUID] uniqueidentifier NOT NULL,
[SBTargetGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(400) NOT NULL,
[AggregateFunction] nvarchar(400) NOT NULL,
[VERSION] timestamp NOT NULL,
PRIMARY KEY ([SBValueColumnGUID])
);
GO
ALTER TABLE [dbo].[SBValueColumn] ADD CONSTRAINT [DF_SBValueColumn_SBValueColumnGUID] DEFAULT (newid()) FOR [SBValueColumnGUID]; GO
ALTER TABLE [dbo].[SBValueColumn] ADD CONSTRAINT [DF_SBValueColumn_SBTargetGUID] DEFAULT (newid()) FOR [SBTargetGUID]; GO
ALTER TABLE [dbo].[SBValueColumn] ADD CONSTRAINT [DF_SBValueColumn_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SBValueColumn] ADD CONSTRAINT [DF_SBValueColumn_AggregateFunction] DEFAULT ('') FOR [AggregateFunction]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SEScript ------------------
---------------------------------------------
CREATE TABLE [dbo].[SEScript] (
[ScriptGUID] uniqueidentifier NOT NULL,
[Name] varchar(20) NOT NULL,
[Description] varchar(64) NOT NULL,
[Engine] varchar(3) NOT NULL,
[ScriptCode] varchar(max) NOT NULL,
PRIMARY KEY ([ScriptGUID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2CorrelationGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2CorrelationGroup] (
[CorrelationGroupGUID] uniqueidentifier NOT NULL,
[TableEditorConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
PRIMARY KEY ([CorrelationGroupGUID])
);
GO
ALTER TABLE [dbo].[SR2CorrelationGroup] ADD CONSTRAINT [FK_SR2CorrelationGroup_ScoreTableEditorConfig] FOREIGN KEY ([TableEditorConfigGUID]) REFERENCES [dbo].[ScoreTableEditorConfig] ([TableEditorConfigGUID]); GO
ALTER TABLE [dbo].[SR2CorrelationGroup] ADD CONSTRAINT [DF_SR2CorrelationGroup_CorrelationGroupGUID] DEFAULT (newid()) FOR [CorrelationGroupGUID]; GO
ALTER TABLE [dbo].[SR2CorrelationGroup] ADD CONSTRAINT [DF_SR2CorrelationGroup_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SR2CorrelationGroup] ADD CONSTRAINT [DF_SR2CorrelationGroup_TableEditorConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TableEditorConfigGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2CorrelationGroupMember ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2CorrelationGroupMember] (
[MemberGUID] uniqueidentifier NOT NULL,
[CorrelationGroupGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[RowID] int NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([MemberGUID])
);
GO
ALTER TABLE [dbo].[SR2CorrelationGroupMember] ADD CONSTRAINT [FK_SR2CorrelationGroupMember_SR2CorrelationGroup] FOREIGN KEY ([CorrelationGroupGUID]) REFERENCES [dbo].[SR2CorrelationGroup] ([CorrelationGroupGUID]); GO
ALTER TABLE [dbo].[SR2CorrelationGroupMember] ADD CONSTRAINT [DF_SR2CorrelationGroupMember_MemberGUID] DEFAULT (newid()) FOR [MemberGUID]; GO
ALTER TABLE [dbo].[SR2CorrelationGroupMember] ADD CONSTRAINT [DF_SR2CorrelationGroupMember_RowID] DEFAULT ((0)) FOR [RowID]; GO
ALTER TABLE [dbo].[SR2CorrelationGroupMember] ADD CONSTRAINT [DF_SR2CorrelationGroupMember_CorrelationGroupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CorrelationGroupGUID]; GO
ALTER TABLE [dbo].[SR2CorrelationGroupMember] ADD CONSTRAINT [DF_SR2CorrelationGroupMember_DataTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[SR2CorrelationGroupMember] ADD CONSTRAINT [DF_SR2CorrelationGroupMember_MeasureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2Project ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2Project] (
[ProjectGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[InputNameFormat] nvarchar(450) NOT NULL,
[OutputNameFormat] nvarchar(450) NOT NULL,
[SensitivityConfigGUID] uniqueidentifier NOT NULL,
[RiskConfigGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ProjectGUID])
);
GO
ALTER TABLE [dbo].[SR2Project] ADD CONSTRAINT [DF_SR2Project_SensitivityConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SensitivityConfigGUID]; GO
ALTER TABLE [dbo].[SR2Project] ADD CONSTRAINT [DF_SR2Project_RiskConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RiskConfigGUID]; GO
ALTER TABLE [dbo].[SR2Project] ADD CONSTRAINT [DF_SNRProject_PackageGUID] DEFAULT (newid()) FOR [ProjectGUID]; GO
ALTER TABLE [dbo].[SR2Project] ADD CONSTRAINT [DF_SR2Project_InputNameFormat] DEFAULT ('') FOR [InputNameFormat]; GO
ALTER TABLE [dbo].[SR2Project] ADD CONSTRAINT [DF_SR2Project_OutputNameFormat] DEFAULT ('') FOR [OutputNameFormat]; GO
ALTER TABLE [dbo].[SR2Project] ADD CONSTRAINT [DF_SNRProject_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SR2Project] ADD CONSTRAINT [DF_SNRProject_Description] DEFAULT ('') FOR [Description]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2ProjectModelLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2ProjectModelLink] (
[LinkGUID] uniqueidentifier NOT NULL,
[ProjectGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[ProcessLevel] int NOT NULL,
PRIMARY KEY ([LinkGUID])
);
GO
ALTER TABLE [dbo].[SR2ProjectModelLink] ADD CONSTRAINT [FK_SNRProjectModelLink_SNRProject] FOREIGN KEY ([ProjectGUID]) REFERENCES [dbo].[SR2Project] ([ProjectGUID]); GO
ALTER TABLE [dbo].[SR2ProjectModelLink] ADD CONSTRAINT [FK_SNRProjectModelLink_XPlan] FOREIGN KEY ([ModelGUID]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[SR2ProjectModelLink] ADD CONSTRAINT [DF_SR2ProjectModelLink_ProcessLevel] DEFAULT ((-1)) FOR [ProcessLevel]; GO
ALTER TABLE [dbo].[SR2ProjectModelLink] ADD CONSTRAINT [DF_SNRProjectModelLink_LinkGUID] DEFAULT (newid()) FOR [LinkGUID]; GO
ALTER TABLE [dbo].[SR2ProjectModelLink] ADD CONSTRAINT [DF_SNRProjectModelLink_ProjectGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ProjectGUID]; GO
ALTER TABLE [dbo].[SR2ProjectModelLink] ADD CONSTRAINT [DF_SNRProjectModelLink_ModelGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2ProjectViewLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2ProjectViewLink] (
[LinkGUID] uniqueidentifier NOT NULL,
[ProjectGUID] uniqueidentifier NOT NULL,
[TableEditorConfigGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([LinkGUID])
);
GO
ALTER TABLE [dbo].[SR2ProjectViewLink] ADD CONSTRAINT [FK_SNRProjectViewLink_ScoreTableEditorConfig] FOREIGN KEY ([TableEditorConfigGUID]) REFERENCES [dbo].[ScoreTableEditorConfig] ([TableEditorConfigGUID]); GO
ALTER TABLE [dbo].[SR2ProjectViewLink] ADD CONSTRAINT [FK_SNRProjectViewLink_SNRProject] FOREIGN KEY ([ProjectGUID]) REFERENCES [dbo].[SR2Project] ([ProjectGUID]); GO
ALTER TABLE [dbo].[SR2ProjectViewLink] ADD CONSTRAINT [DF_SNRProjectViewLink_LinkGUID] DEFAULT (newid()) FOR [LinkGUID]; GO
ALTER TABLE [dbo].[SR2ProjectViewLink] ADD CONSTRAINT [DF_SNRProjectViewLink_ProjectGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ProjectGUID]; GO
ALTER TABLE [dbo].[SR2ProjectViewLink] ADD CONSTRAINT [DF_SNRProjectViewLink_TableEditorConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TableEditorConfigGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2RiskConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2RiskConfig] (
[RiskConfigGUID] uniqueidentifier NOT NULL,
[ProjectGUID] uniqueidentifier NOT NULL,
[BinCount] int NOT NULL,
[TrialCount] int NOT NULL,
[DistributionType] smallint NOT NULL,
[CachedSummary] nvarchar(4000) NOT NULL,
[TaskState] int NOT NULL,
[TaskNumModelsComplete] int NOT NULL,
[TaskErrorGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([RiskConfigGUID])
);
GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [FK_SR2RiskConfig_SR2Project] FOREIGN KEY ([ProjectGUID]) REFERENCES [dbo].[SR2Project] ([ProjectGUID]); GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [DF_SR2RiskConfig_ExecutionState] DEFAULT ((0)) FOR [TaskState]; GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [DF_SR2RiskConfig_ExecutionPercentComplete] DEFAULT ((0)) FOR [TaskNumModelsComplete]; GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [DF_SR2RiskConfig_TaskErrorGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TaskErrorGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [DF_SR2RiskConfig_RiskConfigGUID] DEFAULT (newid()) FOR [RiskConfigGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [DF_SR2RiskConfig_BinCount] DEFAULT ((0)) FOR [BinCount]; GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [DF_SR2RiskConfig_TrialCount] DEFAULT ((0)) FOR [TrialCount]; GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [DF_SR2RiskConfig_DistributionType] DEFAULT ((0)) FOR [DistributionType]; GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [DF_SR2RiskConfig_CachedSummary] DEFAULT ('') FOR [CachedSummary]; GO
ALTER TABLE [dbo].[SR2RiskConfig] ADD CONSTRAINT [DF_SR2RiskConfig_ProjectGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ProjectGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2RiskConfigInput ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2RiskConfigInput] (
[InputGUID] uniqueidentifier NOT NULL,
[RiskConfigGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[RowID] int NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[CachedName] nvarchar(450) NOT NULL,
[GroupName] nvarchar(450) NOT NULL,
[GroupID] int NOT NULL,
PRIMARY KEY ([InputGUID])
);
GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [FK_SR2RiskConfigInput_SR2RiskConfig] FOREIGN KEY ([RiskConfigGUID]) REFERENCES [dbo].[SR2RiskConfig] ([RiskConfigGUID]); GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [DF_SR2RiskConfigInput_MeasureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [DF_SR2RiskConfigInput_ModelGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [DF_SR2RiskConfigInput_DataTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [DF_SR2RiskConfigInput_CachedName] DEFAULT ('') FOR [CachedName]; GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [DF__SR2RiskCo__Group__39C65BD2] DEFAULT ('') FOR [GroupName]; GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [DF_SR2RiskConfigInput_GroupID] DEFAULT ((0)) FOR [GroupID]; GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [DF_SR2RiskConfigInput_InputGUID] DEFAULT (newid()) FOR [InputGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [DF_SR2RiskConfigInput_RowID] DEFAULT ((0)) FOR [RowID]; GO
ALTER TABLE [dbo].[SR2RiskConfigInput] ADD CONSTRAINT [DF_SR2RiskConfigInput_RiskConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RiskConfigGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2RiskConfigOutput ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2RiskConfigOutput] (
[OutputGUID] uniqueidentifier NOT NULL,
[RiskConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[DisplayFormat] nvarchar(100) NOT NULL,
PRIMARY KEY ([OutputGUID])
);
GO
ALTER TABLE [dbo].[SR2RiskConfigOutput] ADD CONSTRAINT [FK_SR2RiskConfigOutput_SR2RiskConfig] FOREIGN KEY ([RiskConfigGUID]) REFERENCES [dbo].[SR2RiskConfig] ([RiskConfigGUID]); GO
ALTER TABLE [dbo].[SR2RiskConfigOutput] ADD CONSTRAINT [DF_SR2RiskConfigOutput_DisplayFormat] DEFAULT ('') FOR [DisplayFormat]; GO
ALTER TABLE [dbo].[SR2RiskConfigOutput] ADD CONSTRAINT [DF_SR2RiskConfigOutput_RiskConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RiskConfigGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigOutput] ADD CONSTRAINT [DF_SR2RiskConfigOutput_OutputGUID] DEFAULT (newid()) FOR [OutputGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigOutput] ADD CONSTRAINT [DF_SR2RiskConfigOutput_Name] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2RiskConfigOutputMember ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2RiskConfigOutputMember] (
[OutputMemberGUID] uniqueidentifier NOT NULL,
[OutputGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[RowID] int NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[CachedName] nvarchar(450) NOT NULL,
PRIMARY KEY ([OutputMemberGUID])
);
GO
ALTER TABLE [dbo].[SR2RiskConfigOutputMember] ADD CONSTRAINT [FK_SR2RiskConfigOutputMember_SR2RiskConfigOutput] FOREIGN KEY ([OutputGUID]) REFERENCES [dbo].[SR2RiskConfigOutput] ([OutputGUID]); GO
ALTER TABLE [dbo].[SR2RiskConfigOutputMember] ADD CONSTRAINT [DF_SR2RiskConfigOutputMember_OutputGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OutputGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigOutputMember] ADD CONSTRAINT [DF_SR2RiskConfigOutputMember_MeasureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigOutputMember] ADD CONSTRAINT [DF_SR2RiskConfigOutputMember_ModelGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigOutputMember] ADD CONSTRAINT [DF_SR2RiskConfigOutputMember_CachedName] DEFAULT ('') FOR [CachedName]; GO
ALTER TABLE [dbo].[SR2RiskConfigOutputMember] ADD CONSTRAINT [DF_SR2RiskConfigOutputMember_DataTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigOutputMember] ADD CONSTRAINT [DF_SR2RiskConfigOutputMember_OutputMemberGUID] DEFAULT (newid()) FOR [OutputMemberGUID]; GO
ALTER TABLE [dbo].[SR2RiskConfigOutputMember] ADD CONSTRAINT [DF_SR2RiskConfigOutputMember_RowID] DEFAULT ((0)) FOR [RowID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2RiskResult ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2RiskResult] (
[RiskResultGUID] uniqueidentifier NOT NULL,
[RiskConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[DateCreated] datetime NOT NULL,
[BinCount] int NOT NULL,
PRIMARY KEY ([RiskResultGUID])
);
GO
ALTER TABLE [dbo].[SR2RiskResult] ADD CONSTRAINT [FK_SR2RiskResult_SR2RiskConfig] FOREIGN KEY ([RiskConfigGUID]) REFERENCES [dbo].[SR2RiskConfig] ([RiskConfigGUID]); GO
ALTER TABLE [dbo].[SR2RiskResult] ADD CONSTRAINT [DF_SR2RiskResult_RiskConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RiskConfigGUID]; GO
ALTER TABLE [dbo].[SR2RiskResult] ADD CONSTRAINT [DF_SR2RiskResult_BinCount] DEFAULT ((0)) FOR [BinCount]; GO
ALTER TABLE [dbo].[SR2RiskResult] ADD CONSTRAINT [DF_SR2RiskResult_RiskResultGUID] DEFAULT (newid()) FOR [RiskResultGUID]; GO
ALTER TABLE [dbo].[SR2RiskResult] ADD CONSTRAINT [DF_SR2RiskResult_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SR2RiskResult] ADD CONSTRAINT [DF_SR2RiskResult_DateCreated] DEFAULT (getdate()) FOR [DateCreated]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2RiskResultDetail ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2RiskResultDetail] (
[RowID] int NOT NULL,
[RiskResultGUID] uniqueidentifier NOT NULL,
[TrialNumber] int NOT NULL,
[OutputGUID] uniqueidentifier NOT NULL,
[BinNumber] int NOT NULL,
[Value] decimal NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[IsDeleted] bit NOT NULL,
[DetailGUID] uniqueidentifier NOT NULL,
[OutputUniqueID] nvarchar(80) NOT NULL,
[CachedOutputName] nvarchar(450) NOT NULL,
[CachedOutputDisplayFormat] nvarchar(450) NOT NULL,
PRIMARY KEY ([DetailGUID])
);
CREATE NONCLUSTERED INDEX [idx_SR2RiskReport] ON [dbo].[SR2RiskResultDetail] ([RiskResultGUID], [OutputGUID]) INCLUDE ([RowID], [TrialNumber], [BinNumber], [Value], [HistoryItemGUID], [IsDeleted], [DetailGUID], [OutputUniqueID]);
GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [FK_SR2RiskResultDetail_SR2RiskResult] FOREIGN KEY ([RiskResultGUID]) REFERENCES [dbo].[SR2RiskResult] ([RiskResultGUID]); GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_BinNumber] DEFAULT ((0)) FOR [BinNumber]; GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_Value] DEFAULT ((0)) FOR [Value]; GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_IsDeleted] DEFAULT ((0)) FOR [IsDeleted]; GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_CachedOutputName] DEFAULT ('') FOR [CachedOutputName]; GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_DetailGUID] DEFAULT (newid()) FOR [DetailGUID]; GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_CachedOutputDisplayFormat] DEFAULT ('') FOR [CachedOutputDisplayFormat]; GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_OutputGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OutputGUID]; GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_RiskResultGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RiskResultGUID]; GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_HistoryItemGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[SR2RiskResultDetail] ADD CONSTRAINT [DF_SR2RiskResultDetail_TrialNumber] DEFAULT ((0)) FOR [TrialNumber]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2RiskTrial ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2RiskTrial] (
[RiskTrialGUID] uniqueidentifier NOT NULL,
[RiskConfigGUID] uniqueidentifier NOT NULL,
[TrialNumber] int NOT NULL,
PRIMARY KEY ([RiskTrialGUID])
);
GO
ALTER TABLE [dbo].[SR2RiskTrial] ADD CONSTRAINT [DF_SR2RiskTrial_TrialNumber] DEFAULT ((0)) FOR [TrialNumber]; GO
ALTER TABLE [dbo].[SR2RiskTrial] ADD CONSTRAINT [DF_SR2RiskTrial_RiskTrialGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RiskTrialGUID]; GO
ALTER TABLE [dbo].[SR2RiskTrial] ADD CONSTRAINT [DF_SR2RiskTrial_RiskConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RiskConfigGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2RiskTrialInput ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2RiskTrialInput] (
[RiskTrialInputGUID] uniqueidentifier NOT NULL,
[RiskTrialGUID] uniqueidentifier NOT NULL,
[InputGUID] uniqueidentifier NOT NULL,
[DistributionPoint] int NOT NULL,
PRIMARY KEY ([RiskTrialInputGUID])
);
GO
ALTER TABLE [dbo].[SR2RiskTrialInput] ADD CONSTRAINT [FK_SR2RiskTrialInput_SR2RiskTrial] FOREIGN KEY ([RiskTrialGUID]) REFERENCES [dbo].[SR2RiskTrial] ([RiskTrialGUID]); GO
ALTER TABLE [dbo].[SR2RiskTrialInput] ADD CONSTRAINT [DF_SR2RiskTrialInput_RiskTrialGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RiskTrialGUID]; GO
ALTER TABLE [dbo].[SR2RiskTrialInput] ADD CONSTRAINT [DF_SR2RiskTrialInput_DistributionPoint] DEFAULT ((0)) FOR [DistributionPoint]; GO
ALTER TABLE [dbo].[SR2RiskTrialInput] ADD CONSTRAINT [DF_SR2RiskTrialInput_InputGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [InputGUID]; GO
ALTER TABLE [dbo].[SR2RiskTrialInput] ADD CONSTRAINT [DF_SR2RiskTrialInput_RiskTrialInputGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RiskTrialInputGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2SensitivityConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2SensitivityConfig] (
[SensitivityConfigGUID] uniqueidentifier NOT NULL,
[ProjectGUID] uniqueidentifier NOT NULL,
[CachedSummary] nvarchar(4000) NOT NULL,
[TaskState] int NOT NULL,
[TaskNumModelsComplete] int NOT NULL,
[TaskErrorGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([SensitivityConfigGUID])
);
GO
ALTER TABLE [dbo].[SR2SensitivityConfig] ADD CONSTRAINT [FK_SR2SensitivityConfig_SR2Project] FOREIGN KEY ([ProjectGUID]) REFERENCES [dbo].[SR2Project] ([ProjectGUID]); GO
ALTER TABLE [dbo].[SR2SensitivityConfig] ADD CONSTRAINT [DF_SR2SensitivityConfig_ExecutionState] DEFAULT ((0)) FOR [TaskState]; GO
ALTER TABLE [dbo].[SR2SensitivityConfig] ADD CONSTRAINT [DF_SR2SensitivityConfig_ExecutionPercentComplete] DEFAULT ((0)) FOR [TaskNumModelsComplete]; GO
ALTER TABLE [dbo].[SR2SensitivityConfig] ADD CONSTRAINT [DF_SR2SensitivityConfig_SensitivityConfigGUID] DEFAULT (newid()) FOR [SensitivityConfigGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfig] ADD CONSTRAINT [DF_SR2SensitivityConfig_CachedSummary] DEFAULT ('') FOR [CachedSummary]; GO
ALTER TABLE [dbo].[SR2SensitivityConfig] ADD CONSTRAINT [DF_SR2SensitivityConfig_TaskErrorGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TaskErrorGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfig] ADD CONSTRAINT [DF_SR2SensitivityConfig_ProjectGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ProjectGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2SensitivityConfigAutoGroupLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2SensitivityConfigAutoGroupLink] (
[AutoGroupGUID] uniqueidentifier NOT NULL,
[SensitivityConfigGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([AutoGroupGUID])
);
GO
ALTER TABLE [dbo].[SR2SensitivityConfigAutoGroupLink] ADD CONSTRAINT [FK_SR2SensitivityConfigAutoGroupLink_SR2SensitivityConfig] FOREIGN KEY ([SensitivityConfigGUID]) REFERENCES [dbo].[SR2SensitivityConfig] ([SensitivityConfigGUID]); GO
ALTER TABLE [dbo].[SR2SensitivityConfigAutoGroupLink] ADD CONSTRAINT [DF_SR2SensitivityConfigAutoGroupLink_DimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigAutoGroupLink] ADD CONSTRAINT [DF_SR2SensitivityConfigAutoGroupLink_AutoGroupGUID] DEFAULT (newid()) FOR [AutoGroupGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigAutoGroupLink] ADD CONSTRAINT [DF_SR2SensitivityConfigAutoGroupLink_SensitivityConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SensitivityConfigGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2SensitivityConfigCorrelationGroupLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2SensitivityConfigCorrelationGroupLink] (
[LinkGUID] uniqueidentifier NOT NULL,
[SensitivityConfigGUID] uniqueidentifier NOT NULL,
[CorrelationGroupGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([LinkGUID])
);
GO
ALTER TABLE [dbo].[SR2SensitivityConfigCorrelationGroupLink] ADD CONSTRAINT [FK_SR2SensitivityConfigCorrelationGroupLink_SR2CorrelationGroup] FOREIGN KEY ([CorrelationGroupGUID]) REFERENCES [dbo].[SR2CorrelationGroup] ([CorrelationGroupGUID]); GO
ALTER TABLE [dbo].[SR2SensitivityConfigCorrelationGroupLink] ADD CONSTRAINT [FK_SR2SensitivityConfigCorrelationGroupLink_SR2SensitivityConfig] FOREIGN KEY ([SensitivityConfigGUID]) REFERENCES [dbo].[SR2SensitivityConfig] ([SensitivityConfigGUID]); GO
ALTER TABLE [dbo].[SR2SensitivityConfigCorrelationGroupLink] ADD CONSTRAINT [DF_SR2SensitivityConfigCorrelationGroupLink_SensitivityConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SensitivityConfigGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigCorrelationGroupLink] ADD CONSTRAINT [DF_SR2SensitivityConfigCorrelationGroupLink_CorrelationGroupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CorrelationGroupGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigCorrelationGroupLink] ADD CONSTRAINT [DF_SR2SensitivityConfigCorrelationGroupLink_LinkGUID] DEFAULT (newid()) FOR [LinkGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2SensitivityConfigInput ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2SensitivityConfigInput] (
[InputGUID] uniqueidentifier NOT NULL,
[SensitivityConfigGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[RowID] int NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[CachedName] nvarchar(450) NOT NULL,
[GroupName] nvarchar(450) NOT NULL,
[GroupID] int NOT NULL,
PRIMARY KEY ([InputGUID])
);
GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [FK_SR2SensitivityConfigInput_SR2SensitivityConfig] FOREIGN KEY ([SensitivityConfigGUID]) REFERENCES [dbo].[SR2SensitivityConfig] ([SensitivityConfigGUID]); GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [DF_SR2SensitivityConfigInput_SensitivityConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SensitivityConfigGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [DF_SR2SensitivityConfigInput_InputGUID] DEFAULT (newid()) FOR [InputGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [DF_SR2SensitivityConfigInput_RowID] DEFAULT ((0)) FOR [RowID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [DF_SR2SensitivityConfigInput_ModelGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [DF_SR2SensitivityConfigInput_CachedName] DEFAULT ('') FOR [CachedName]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [DF_SR2SensitivityConfigInput_MeasureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [DF_SR2SensitivityConfigInput_DataTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [DF__SR2Sensit__Group__38D23799] DEFAULT ('') FOR [GroupName]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigInput] ADD CONSTRAINT [DF_SR2SensitivityConfigInput_GroupID] DEFAULT ((0)) FOR [GroupID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2SensitivityConfigOutput ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2SensitivityConfigOutput] (
[OutputGUID] uniqueidentifier NOT NULL,
[SensitivityConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[DisplayFormat] nvarchar(100) NOT NULL,
PRIMARY KEY ([OutputGUID])
);
GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutput] ADD CONSTRAINT [FK_SR2SensitivityConfigOutput_SR2SensitivityConfig] FOREIGN KEY ([SensitivityConfigGUID]) REFERENCES [dbo].[SR2SensitivityConfig] ([SensitivityConfigGUID]); GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutput] ADD CONSTRAINT [DF_SR2SensitivityConfigOutput_DisplayFormat] DEFAULT ('') FOR [DisplayFormat]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutput] ADD CONSTRAINT [DF_SR2SensitivityConfigOutput_OutputGUID] DEFAULT (newid()) FOR [OutputGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutput] ADD CONSTRAINT [DF_SR2SensitivityConfigOutput_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutput] ADD CONSTRAINT [DF_SR2SensitivityConfigOutput_SensitivityConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SensitivityConfigGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2SensitivityConfigOutputMember ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2SensitivityConfigOutputMember] (
[OutputMemberGUID] uniqueidentifier NOT NULL,
[OutputGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[RowID] int NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[CachedName] nvarchar(450) NOT NULL,
PRIMARY KEY ([OutputMemberGUID])
);
GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutputMember] ADD CONSTRAINT [FK_SR2SensitivityConfigOutputMember_SR2SensitivityConfigOutput] FOREIGN KEY ([OutputGUID]) REFERENCES [dbo].[SR2SensitivityConfigOutput] ([OutputGUID]); GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutputMember] ADD CONSTRAINT [DF_SR2SensitivityConfigOutputMember_OutputGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OutputGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutputMember] ADD CONSTRAINT [DF_SR2SensitivityConfigOutputMember_CachedName] DEFAULT ('') FOR [CachedName]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutputMember] ADD CONSTRAINT [DF_SR2SensitivityConfigOutputMember_ModelGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutputMember] ADD CONSTRAINT [DF_SR2SensitivityConfigOutputMember_DataTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutputMember] ADD CONSTRAINT [DF_SR2SensitivityConfigOutputMember_MeasureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutputMember] ADD CONSTRAINT [DF_SR2SensitivityConfigOutputMember_OutputMemberGUID] DEFAULT (newid()) FOR [OutputMemberGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityConfigOutputMember] ADD CONSTRAINT [DF_SR2SensitivityConfigOutputMember_RowID] DEFAULT ((0)) FOR [RowID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2SensitivityResult ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2SensitivityResult] (
[SensitivityResultGUID] uniqueidentifier NOT NULL,
[SensitivityConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[DateCreated] datetime NOT NULL,
PRIMARY KEY ([SensitivityResultGUID])
);
GO
ALTER TABLE [dbo].[SR2SensitivityResult] ADD CONSTRAINT [FK_SR2SensitivityResult_SR2SensitivityConfig] FOREIGN KEY ([SensitivityConfigGUID]) REFERENCES [dbo].[SR2SensitivityConfig] ([SensitivityConfigGUID]); GO
ALTER TABLE [dbo].[SR2SensitivityResult] ADD CONSTRAINT [DF_SR2SensitivityResult_SensitivityConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SensitivityConfigGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityResult] ADD CONSTRAINT [DF_SR2SensitivityResult_SensitivityResultGUID] DEFAULT (newid()) FOR [SensitivityResultGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityResult] ADD CONSTRAINT [DF_SR2SensitivityResult_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SR2SensitivityResult] ADD CONSTRAINT [DF_SR2SensitivityResult_DateCreated] DEFAULT (getdate()) FOR [DateCreated]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SR2SensitivityResultDetail ------------------
---------------------------------------------
CREATE TABLE [dbo].[SR2SensitivityResultDetail] (
[RowID] int NOT NULL,
[SensitivityResultGUID] uniqueidentifier NOT NULL,
[OutputGUID] uniqueidentifier NOT NULL,
[ValueLow] decimal NOT NULL,
[ValueHigh] decimal NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[IsDeleted] bit NOT NULL,
[DetailGUID] uniqueidentifier NOT NULL,
[InputGUID] uniqueidentifier NOT NULL,
[ValueBaseline] decimal NOT NULL,
[OutputUniqueID] nvarchar(80) NOT NULL,
[CachedInputName] nvarchar(450) NOT NULL,
[CachedGroupName] nvarchar(450) NOT NULL,
[CachedOutputName] nvarchar(450) NOT NULL,
[CachedOutputDisplayFormat] nvarchar(450) NOT NULL,
PRIMARY KEY ([DetailGUID])
);
CREATE NONCLUSTERED INDEX [idx_SR2SensReport] ON [dbo].[SR2SensitivityResultDetail] ([SensitivityResultGUID], [OutputGUID], [InputGUID]) INCLUDE ([RowID], [ValueLow], [ValueHigh], [HistoryItemGUID], [IsDeleted], [DetailGUID], [ValueBaseline], [OutputUniqueID]);
GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [FK_SR2SensitivityResultDetail_SR2SensitivityResult] FOREIGN KEY ([SensitivityResultGUID]) REFERENCES [dbo].[SR2SensitivityResult] ([SensitivityResultGUID]); GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_CachedInputName] DEFAULT ('') FOR [CachedInputName]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_CachedGroupName] DEFAULT ('') FOR [CachedGroupName]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_CachedOutputName] DEFAULT ('') FOR [CachedOutputName]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_ValueBaseline] DEFAULT ((0)) FOR [ValueBaseline]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_SensitivityResultGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SensitivityResultGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_DetailGUID] DEFAULT (newid()) FOR [DetailGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_CachedOutputDisplayFormat] DEFAULT ('') FOR [CachedOutputDisplayFormat]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_InputGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [InputGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_OutputGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OutputGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_HistoryItemGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_ValueLow] DEFAULT ((0)) FOR [ValueLow]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_ValueHigh] DEFAULT ((0)) FOR [ValueHigh]; GO
ALTER TABLE [dbo].[SR2SensitivityResultDetail] ADD CONSTRAINT [DF_SR2SensitivityResultDetail_IsDeleted] DEFAULT ((0)) FOR [IsDeleted]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRAssumption ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRAssumption] (
[AssumptionID] int NOT NULL,
[AssumptionSetID] int NOT NULL,
[Name] nvarchar(100) NOT NULL,
PRIMARY KEY ([AssumptionID])
);
GO
ALTER TABLE [dbo].[SRAssumption] ADD CONSTRAINT [FK_SRAssumptionSetMember_SRAssumptionSet] FOREIGN KEY ([AssumptionSetID]) REFERENCES [dbo].[SRAssumptionSet] ([AssumptionSetID]); GO
ALTER TABLE [dbo].[SRAssumption] ADD CONSTRAINT [DF_AMAssumptionSetMember_AssumptionSetID] DEFAULT ((0)) FOR [AssumptionSetID]; GO
ALTER TABLE [dbo].[SRAssumption] ADD CONSTRAINT [DF_AMAssumptionSetMember_Name] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRAssumptionLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRAssumptionLink] (
[AssumptionID] int NOT NULL,
[ParentAssumptionID] int NOT NULL,
[ScenarioID] int NOT NULL,
[ParentScenarioID] int NOT NULL,
PRIMARY KEY ([ParentAssumptionID], [AssumptionID])
);
GO
ALTER TABLE [dbo].[SRAssumptionLink] ADD CONSTRAINT [FK_SRAssumptionSetMemberLink_SRAssumptionSetMember] FOREIGN KEY ([ParentAssumptionID]) REFERENCES [dbo].[SRAssumption] ([AssumptionID]); GO
ALTER TABLE [dbo].[SRAssumptionLink] ADD CONSTRAINT [FK_SRAssumptionSetMemberLink_SRAssumptionSetMember2] FOREIGN KEY ([AssumptionID]) REFERENCES [dbo].[SRAssumption] ([AssumptionID]); GO
ALTER TABLE [dbo].[SRAssumptionLink] ADD CONSTRAINT [FK_SRAssumptionSetMemberLink_SRScenario] FOREIGN KEY ([ScenarioID]) REFERENCES [dbo].[SRScenario] ([ScenarioID]); GO
ALTER TABLE [dbo].[SRAssumptionLink] ADD CONSTRAINT [FK_SRAssumptionSetMemberLink_SRScenario1] FOREIGN KEY ([ParentScenarioID]) REFERENCES [dbo].[SRScenario] ([ScenarioID]); GO
ALTER TABLE [dbo].[SRAssumptionLink] ADD CONSTRAINT [DF_SRCorrelation_AssumptionSetMemberID] DEFAULT ((0)) FOR [AssumptionID]; GO
ALTER TABLE [dbo].[SRAssumptionLink] ADD CONSTRAINT [DF_SRCorrelation_ParentAssumptionSetMemberID] DEFAULT ((0)) FOR [ParentAssumptionID]; GO
ALTER TABLE [dbo].[SRAssumptionLink] ADD CONSTRAINT [DF_SRAssumptionSetMemberLink_ScenarioID] DEFAULT ((0)) FOR [ScenarioID]; GO
ALTER TABLE [dbo].[SRAssumptionLink] ADD CONSTRAINT [DF_SRAssumptionSetMemberLink_ParentScenarioID] DEFAULT ((0)) FOR [ParentScenarioID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRAssumptionSet ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRAssumptionSet] (
[AssumptionSetID] int NOT NULL,
[Name] nvarchar(100) NOT NULL,
[IsInputSet] bit NOT NULL,
[IsOutputSet] bit NOT NULL,
[IsGroupingTime] bit NOT NULL,
[IsGroupingPlans] bit NOT NULL,
PRIMARY KEY ([AssumptionSetID])
);
GO
ALTER TABLE [dbo].[SRAssumptionSet] ADD CONSTRAINT [DF_AMAssumptionSet_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SRAssumptionSet] ADD CONSTRAINT [DF_AMAssumptionSet_IsInputSet] DEFAULT ((0)) FOR [IsInputSet]; GO
ALTER TABLE [dbo].[SRAssumptionSet] ADD CONSTRAINT [DF_AMAssumptionSet_IsOutputSet] DEFAULT ((0)) FOR [IsOutputSet]; GO
ALTER TABLE [dbo].[SRAssumptionSet] ADD CONSTRAINT [DF_SRAssumptionSet_IsGroupingTime] DEFAULT ((0)) FOR [IsGroupingTime]; GO
ALTER TABLE [dbo].[SRAssumptionSet] ADD CONSTRAINT [DF_SRAssumptionSet_IsGroupingPlans] DEFAULT ((0)) FOR [IsGroupingPlans]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRAssumptionTuple ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRAssumptionTuple] (
[AssumptionID] int NOT NULL,
[DimensionMemberGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([AssumptionID], [DimensionMemberGUID])
);
GO
ALTER TABLE [dbo].[SRAssumptionTuple] ADD CONSTRAINT [FK_SRAssumptionSetMemberTuple_SRAssumptionSetMember] FOREIGN KEY ([AssumptionID]) REFERENCES [dbo].[SRAssumption] ([AssumptionID]); GO
ALTER TABLE [dbo].[SRAssumptionTuple] ADD CONSTRAINT [DF_AMAssumptionSetMemberTuple_AssumptionSetMemberID] DEFAULT ((0)) FOR [AssumptionID]; GO
ALTER TABLE [dbo].[SRAssumptionTuple] ADD CONSTRAINT [DF_AMAssumptionSetMemberTuple_DimensionMemberGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionMemberGUID]; GO
ALTER TABLE [dbo].[SRAssumptionTuple] ADD CONSTRAINT [DF_AMAssumptionSetMemberTuple_DimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRPackage ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRPackage] (
[PackageGUID] uniqueidentifier NOT NULL,
[ProjectID] int NOT NULL,
[Name] nvarchar(100) NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PackageGUID])
);
GO
ALTER TABLE [dbo].[SRPackage] ADD CONSTRAINT [FK_SRPackage_Folder] FOREIGN KEY ([FolderGUID]) REFERENCES [dbo].[Folder] ([FolderGuid]); GO
ALTER TABLE [dbo].[SRPackage] ADD CONSTRAINT [FK_SRPackage_SRProject] FOREIGN KEY ([ProjectID]) REFERENCES [dbo].[SRProject] ([ProjectID]); GO
ALTER TABLE [dbo].[SRPackage] ADD CONSTRAINT [DF_SRPackage_PackageGUID] DEFAULT (newid()) FOR [PackageGUID]; GO
ALTER TABLE [dbo].[SRPackage] ADD CONSTRAINT [DF_SRPackage_ProjectID] DEFAULT ((0)) FOR [ProjectID]; GO
ALTER TABLE [dbo].[SRPackage] ADD CONSTRAINT [DF_SRPackage_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SRPackage] ADD CONSTRAINT [DF_SRPackage_FolderGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRPackageConfigLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRPackageConfigLink] (
[PackageConfigLinkGUID] uniqueidentifier NOT NULL,
[PackageGUID] uniqueidentifier NOT NULL,
[TableEditorConfigGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([PackageConfigLinkGUID])
);
GO
ALTER TABLE [dbo].[SRPackageConfigLink] ADD CONSTRAINT [FK_SRPackageConfigLink_ScoreTableEditorConfig] FOREIGN KEY ([TableEditorConfigGUID]) REFERENCES [dbo].[ScoreTableEditorConfig] ([TableEditorConfigGUID]); GO
ALTER TABLE [dbo].[SRPackageConfigLink] ADD CONSTRAINT [FK_SRPackageConfigLink_SRPackageConfigLink] FOREIGN KEY ([PackageGUID]) REFERENCES [dbo].[SRPackage] ([PackageGUID]); GO
ALTER TABLE [dbo].[SRPackageConfigLink] ADD CONSTRAINT [DF_SRPackageConfigLink_PackageConfigLinkGUID] DEFAULT (newid()) FOR [PackageConfigLinkGUID]; GO
ALTER TABLE [dbo].[SRPackageConfigLink] ADD CONSTRAINT [DF_SRPackageConfigLink_PackageGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PackageGUID]; GO
ALTER TABLE [dbo].[SRPackageConfigLink] ADD CONSTRAINT [DF_SRPackageConfigLink_TableEditorConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TableEditorConfigGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRProject ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRProject] (
[ProjectID] int NOT NULL,
[Name] nvarchar(100) NOT NULL,
[SensitivityConfigID] int NOT NULL,
[RiskConfigID] int NOT NULL,
PRIMARY KEY ([ProjectID])
);
GO
ALTER TABLE [dbo].[SRProject] ADD CONSTRAINT [FK_SRProject_SRRiskConfig] FOREIGN KEY ([RiskConfigID]) REFERENCES [dbo].[SRRiskConfig] ([RiskConfigID]); GO
ALTER TABLE [dbo].[SRProject] ADD CONSTRAINT [FK_SRProject_SRSensitivityConfig] FOREIGN KEY ([SensitivityConfigID]) REFERENCES [dbo].[SRSensitivityConfig] ([SensitivityConfigID]); GO
ALTER TABLE [dbo].[SRProject] ADD CONSTRAINT [DF_SRProject_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SRProject] ADD CONSTRAINT [DF_SRProject_SensitivityConfigID] DEFAULT ((0)) FOR [SensitivityConfigID]; GO
ALTER TABLE [dbo].[SRProject] ADD CONSTRAINT [DF_SRProject_RiskConfigID] DEFAULT ((0)) FOR [RiskConfigID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRProjectModelLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRProjectModelLink] (
[ProjectID] int NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[IsPrimary] bit NOT NULL,
PRIMARY KEY ([ProjectID], [ModelGUID])
);
GO
ALTER TABLE [dbo].[SRProjectModelLink] ADD CONSTRAINT [FK_SRProjectModelLink_SRProject] FOREIGN KEY ([ProjectID]) REFERENCES [dbo].[SRProject] ([ProjectID]); GO
ALTER TABLE [dbo].[SRProjectModelLink] ADD CONSTRAINT [FK_SRProjectModelLink_XPlan] FOREIGN KEY ([ModelGUID]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[SRProjectModelLink] ADD CONSTRAINT [DF_SRProjectModelLink_IsPrimaryModel] DEFAULT ((0)) FOR [IsPrimary]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRRiskConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRRiskConfig] (
[RiskConfigID] int NOT NULL,
[InputAssumptionSetID] int NOT NULL,
[OutputAssumptionSetID] int NOT NULL,
[Trials] int NOT NULL,
[Bins] int NOT NULL,
[LowScenarioID] int NOT NULL,
[HighScenarioID] int NOT NULL,
PRIMARY KEY ([RiskConfigID])
);
GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [FK_SRRiskConfig_SRAssumptionSet] FOREIGN KEY ([InputAssumptionSetID]) REFERENCES [dbo].[SRAssumptionSet] ([AssumptionSetID]); GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [FK_SRRiskConfig_SRAssumptionSet1] FOREIGN KEY ([OutputAssumptionSetID]) REFERENCES [dbo].[SRAssumptionSet] ([AssumptionSetID]); GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [FK_SRRiskConfig_SRScenario] FOREIGN KEY ([LowScenarioID]) REFERENCES [dbo].[SRScenario] ([ScenarioID]); GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [FK_SRRiskConfig_SRScenario1] FOREIGN KEY ([HighScenarioID]) REFERENCES [dbo].[SRScenario] ([ScenarioID]); GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [DF_SRRiskConfig_InputAssumptionSetID] DEFAULT ((0)) FOR [InputAssumptionSetID]; GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [DF_SRRiskConfig_OutputAssumptionSetID] DEFAULT ((0)) FOR [OutputAssumptionSetID]; GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [DF_SRRiskConfig_Trials] DEFAULT ((0)) FOR [Trials]; GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [DF_SRRiskConfig_Bins] DEFAULT ((0)) FOR [Bins]; GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [DF_SRRiskConfig_LowScenarioID] DEFAULT ((0)) FOR [LowScenarioID]; GO
ALTER TABLE [dbo].[SRRiskConfig] ADD CONSTRAINT [DF_SRRiskConfig_HighScenarioID] DEFAULT ((0)) FOR [HighScenarioID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRScenario ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRScenario] (
[ScenarioID] int NOT NULL,
[Name] nvarchar(100) NOT NULL,
[IsCustom] bit NOT NULL,
PRIMARY KEY ([ScenarioID])
);
GO
ALTER TABLE [dbo].[SRScenario] ADD CONSTRAINT [DF_ScoreScenario_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SRScenario] ADD CONSTRAINT [DF_ScoreScenario_IsSystem] DEFAULT ((0)) FOR [IsCustom]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SRSensitivityConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[SRSensitivityConfig] (
[SensitivityConfigID] int NOT NULL,
[InputAssumptionSetID] int NOT NULL,
[OutputAssumptionSetID] int NOT NULL,
[LowScenarioID] int NOT NULL,
[HighScenarioID] int NOT NULL,
PRIMARY KEY ([SensitivityConfigID])
);
GO
ALTER TABLE [dbo].[SRSensitivityConfig] ADD CONSTRAINT [FK_SRSensitivityConfig_SRAssumptionSet] FOREIGN KEY ([InputAssumptionSetID]) REFERENCES [dbo].[SRAssumptionSet] ([AssumptionSetID]); GO
ALTER TABLE [dbo].[SRSensitivityConfig] ADD CONSTRAINT [FK_SRSensitivityConfig_SRAssumptionSet1] FOREIGN KEY ([OutputAssumptionSetID]) REFERENCES [dbo].[SRAssumptionSet] ([AssumptionSetID]); GO
ALTER TABLE [dbo].[SRSensitivityConfig] ADD CONSTRAINT [FK_SRSensitivityConfig_SRScenario] FOREIGN KEY ([LowScenarioID]) REFERENCES [dbo].[SRScenario] ([ScenarioID]); GO
ALTER TABLE [dbo].[SRSensitivityConfig] ADD CONSTRAINT [FK_SRSensitivityConfig_SRScenario1] FOREIGN KEY ([HighScenarioID]) REFERENCES [dbo].[SRScenario] ([ScenarioID]); GO
ALTER TABLE [dbo].[SRSensitivityConfig] ADD CONSTRAINT [DF_SRSensitivityConfig_InputAssumptionSetID] DEFAULT ((0)) FOR [InputAssumptionSetID]; GO
ALTER TABLE [dbo].[SRSensitivityConfig] ADD CONSTRAINT [DF_SRSensitivityConfig_OutputAssumptionSetID] DEFAULT ((0)) FOR [OutputAssumptionSetID]; GO
ALTER TABLE [dbo].[SRSensitivityConfig] ADD CONSTRAINT [DF_SRSensitivityConfig_LowScenarioID] DEFAULT ((0)) FOR [LowScenarioID]; GO
ALTER TABLE [dbo].[SRSensitivityConfig] ADD CONSTRAINT [DF_SRSensitivityConfig_HighScenarioID] DEFAULT ((0)) FOR [HighScenarioID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreAttribute ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreAttribute] (
[AttributeGUID] uniqueidentifier NOT NULL,
[DimensionGroupGUID] uniqueidentifier NOT NULL,
[FriendlyName] nvarchar(200) NULL,
[IsWrittenToDB] bit NOT NULL,
[IsKey] bit NOT NULL,
[IsSecuredLootID] bit NOT NULL,
[IsSecuredLootConfigID] bit NOT NULL,
[IsSecuredLootGroupID] bit NOT NULL,
[SecuredLootGroupPrefix] nvarchar(128) NOT NULL,
[SQLColumnName] nvarchar(64) NOT NULL,
[DefaultSortAttributeGUID] uniqueidentifier NOT NULL,
[ForeignKeyGUID] uniqueidentifier NOT NULL,
[IsRequired] bit NOT NULL,
[SpecialAttributeIndex] tinyint NOT NULL,
[IsCopiedWithPlan] bit NOT NULL,
[DisplayOrder] smallint NOT NULL,
[IsHidden] bit NOT NULL,
[DateModified] datetime NOT NULL,
[AttributeType] tinyint NOT NULL,
[MetaXML] varchar(max) NOT NULL,
[InferredSourceGUID] uniqueidentifier NOT NULL,
[InferredColumnName] nvarchar(128) NOT NULL,
[InferredAttributeGUID] uniqueidentifier NOT NULL,
[HelpText] nvarchar(800) NOT NULL,
[ColumnType] tinyint NOT NULL,
[ComputedValueDefinition] nvarchar(max) NOT NULL,
[IsComputed] bit NOT NULL,
[IsIdentity] bit NOT NULL,
[IdentityIncrement] int NOT NULL,
[IdentitySeed] int NOT NULL,
[IsNullable] bit NOT NULL,
[DefaultValueDefinition] nvarchar(max) NOT NULL,
[Precision] tinyint NOT NULL,
[Scale] tinyint NOT NULL,
[MaxLength] smallint NOT NULL,
[IsColumnExist] bit NOT NULL,
[IsForeignKeyed] bit NOT NULL,
[ForeignKeySchema] nvarchar(128) NOT NULL,
[ForeignKeyTable] nvarchar(128) NOT NULL,
[ForeignKeyColumn] nvarchar(128) NOT NULL,
[ForeignKeyOnDelete] nvarchar(100) NOT NULL,
[CachedInferredSQLColumnType] tinyint NOT NULL,
[IsFKAutoFilter] bit NOT NULL,
[JoinTypeVal] int NOT NULL,
[IsCustomNumberFormat] bit NOT NULL,
[CustomNumberFormat] varchar(128) NOT NULL,
[IsLocked] bit NOT NULL,
[ForeignKeyHierarchyGUID] uniqueidentifier NOT NULL,
[PHIDisclaimer] nvarchar(2000) NOT NULL,
[CopyrightDisclaimer] nvarchar(2000) NOT NULL,
[IsFormField] bit NOT NULL,
[FrameworkID] tinyint NOT NULL,
[IsModelDriver] bit NOT NULL,
[Description] nvarchar(1000) NOT NULL,
[DSSIsUsed] bit NOT NULL,
PRIMARY KEY ([AttributeGUID])
);
CREATE CLUSTERED INDEX [ix_ScoreAttribute] ON [dbo].[ScoreAttribute] ([DimensionGroupGUID]);
GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [FK_ScoreAttribute_ScoreDimensionGroup] FOREIGN KEY ([DimensionGroupGUID]) REFERENCES [dbo].[ScoreDimensionGroup] ([DimensionGroupGUID]); GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__IsCus__1A0E52E4] DEFAULT ((0)) FOR [IsCustomNumberFormat]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Custo__1B02771D] DEFAULT ('') FOR [CustomNumberFormat]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_DimensionGroupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGroupGUID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__IsLoc__2185577A] DEFAULT ((0)) FOR [IsLocked]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Descr__235CED9A] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__PHIDi__23998596] DEFAULT ('') FOR [PHIDisclaimer]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Copyr__248DA9CF] DEFAULT ('') FOR [CopyrightDisclaimer]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_DateModified] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_AttributeType] DEFAULT ((0)) FOR [AttributeType]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_MetaXML] DEFAULT ('') FOR [MetaXML]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__DSSIs__2867F491] DEFAULT ((1)) FOR [DSSIsUsed]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_InferredColumnName] DEFAULT ('') FOR [InferredColumnName]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_HelpText] DEFAULT ('') FOR [HelpText]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Colum__3DA96780] DEFAULT ((0)) FOR [ColumnType]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Compu__3E9D8BB9] DEFAULT ('') FOR [ComputedValueDefinition]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__IsCom__3F91AFF2] DEFAULT ((0)) FOR [IsComputed]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__IsIde__4085D42B] DEFAULT ((0)) FOR [IsIdentity]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Ident__4179F864] DEFAULT ((0)) FOR [IdentityIncrement]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Ident__426E1C9D] DEFAULT ((0)) FOR [IdentitySeed]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__IsNul__436240D6] DEFAULT ((0)) FOR [IsNullable]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Defau__4456650F] DEFAULT ('') FOR [DefaultValueDefinition]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Preci__454A8948] DEFAULT ((0)) FOR [Precision]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Scale__463EAD81] DEFAULT ((0)) FOR [Scale]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__MaxLe__4732D1BA] DEFAULT ((0)) FOR [MaxLength]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__IsCol__4826F5F3] DEFAULT ((0)) FOR [IsColumnExist]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__IsFor__491B1A2C] DEFAULT ((0)) FOR [IsForeignKeyed]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Forei__4A0F3E65] DEFAULT ('') FOR [ForeignKeySchema]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Forei__4B03629E] DEFAULT ('') FOR [ForeignKeyTable]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Forei__4BF786D7] DEFAULT ('') FOR [ForeignKeyColumn]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Forei__4CEBAB10] DEFAULT ('') FOR [ForeignKeyOnDelete]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Cache__4DDFCF49] DEFAULT ((0)) FOR [CachedInferredSQLColumnType]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsFKAutoFilter] DEFAULT ((1)) FOR [IsFKAutoFilter]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_InferredAttributeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [InferredSourceGUID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Forei__5284BA9F] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ForeignKeyHierarchyGUID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsModelDriver] DEFAULT ((0)) FOR [IsModelDriver]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_AttributeGUID] DEFAULT (newid()) FOR [AttributeGUID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__Frame__66D53282] DEFAULT ((0)) FOR [FrameworkID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_JoinType] DEFAULT ((0)) FOR [JoinTypeVal]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_Name] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsWrittenToDB] DEFAULT ((0)) FOR [IsWrittenToDB]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsKey] DEFAULT ((0)) FOR [IsKey]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsSecuredLootID] DEFAULT ((0)) FOR [IsSecuredLootID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsSecuredConfigID] DEFAULT ((0)) FOR [IsSecuredLootConfigID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsSecuredLootGroupID] DEFAULT ((0)) FOR [IsSecuredLootGroupID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_InferredAttributeGUID_1] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [InferredAttributeGUID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_SecuredLootGroupPrefix] DEFAULT ('') FOR [SecuredLootGroupPrefix]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_SQLColumnName_1] DEFAULT ('') FOR [SQLColumnName]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_DefaultSortAttributeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultSortAttributeGUID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_ForeignKeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ForeignKeyGUID]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsRequired] DEFAULT ((1)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_SpecialAttributeIndex] DEFAULT ((0)) FOR [SpecialAttributeIndex]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsCopiedWithPlan] DEFAULT ((1)) FOR [IsCopiedWithPlan]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF__ScoreAttr__IsSys__74A98C83] DEFAULT ((0)) FOR [IsFormField]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_DisplayOrder] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[ScoreAttribute] ADD CONSTRAINT [DF_ScoreAttribute_IsHidden] DEFAULT ((0)) FOR [IsHidden]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreAttributeSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreAttributeSetting] (
[ScoreAttributeSettingGuid] uniqueidentifier NOT NULL,
[AttributeGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[IsCustom] bit NOT NULL,
[IsMarkedForDeletion] bit NOT NULL,
[IsUsed] bit NOT NULL,
[CAPIsUsed] bit NOT NULL,
[DSSIsUsed] bit NOT NULL,
[MRIsUsed] bit NOT NULL,
[OBIsUsed] bit NOT NULL,
[PRIsUsed] bit NOT NULL,
[SPIsUsed] bit NOT NULL,
PRIMARY KEY ([ScoreAttributeSettingGuid])
);
CREATE UNIQUE NONCLUSTERED INDEX [UQ_SCOREATTRIBUTESETTING_ATTRIBUTEGUID] ON [dbo].[ScoreAttributeSetting] ([AttributeGUID]);
GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF_CAPIsUsed] DEFAULT ((0)) FOR [CAPIsUsed]; GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF_DSSIsUsed] DEFAULT ((0)) FOR [DSSIsUsed]; GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF_MRIsUsed] DEFAULT ((0)) FOR [MRIsUsed]; GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF_OBIsUsed] DEFAULT ((0)) FOR [OBIsUsed]; GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF_PRIsUsed] DEFAULT ((0)) FOR [PRIsUsed]; GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF_SPIsUsed] DEFAULT ((0)) FOR [SPIsUsed]; GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF__ScoreAttr__IsMar__3DA3D3F0] DEFAULT ((0)) FOR [IsMarkedForDeletion]; GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF_IsUsed] DEFAULT ((0)) FOR [IsUsed]; GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF__ScoreAttr__Score__5E8C9913] DEFAULT (newid()) FOR [ScoreAttributeSettingGuid]; GO
ALTER TABLE [dbo].[ScoreAttributeSetting] ADD CONSTRAINT [DF__ScoreAttr__IsCus__616905BE] DEFAULT ((0)) FOR [IsCustom]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreAttributeType ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreAttributeType] (
[ScoreAttributeTypeID] tinyint NOT NULL,
[Name] nvarchar(50) NOT NULL,
PRIMARY KEY ([ScoreAttributeTypeID])
);
GO
ALTER TABLE [dbo].[ScoreAttributeType] ADD CONSTRAINT [DF_Table_1_name] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreComposite ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreComposite] (
[CompositeGUID] uniqueidentifier NOT NULL,
[DataTableGUID1] uniqueidentifier NOT NULL,
[DataTableGUID2] uniqueidentifier NOT NULL,
[IsWrittenToDB] bit NOT NULL,
[FriendlyName] nvarchar(64) NOT NULL,
[Description] varchar(2000) NOT NULL,
[FrameworkID] tinyint NOT NULL,
[ModifiedAt] datetime NOT NULL,
[TableEditorConfigGUID] uniqueidentifier NOT NULL,
[isSubtable] bit NOT NULL,
[BoundsDataTableGUID] uniqueidentifier NOT NULL,
[ModelQueryHint] nvarchar(450) NOT NULL,
[IsUsingHashJoin] bit NOT NULL,
PRIMARY KEY ([CompositeGUID])
);
GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [FK_ScoreComposite_ScoreDataTable] FOREIGN KEY ([DataTableGUID1]) REFERENCES [dbo].[ScoreDataTable] ([DataTableGUID]); GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [FK_ScoreComposite_ScoreDataTable1] FOREIGN KEY ([DataTableGUID2]) REFERENCES [dbo].[ScoreDataTable] ([DataTableGUID]); GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF_ScoreComposite_ModelQueryHint] DEFAULT ('OPTION(RECOMPILE)') FOR [ModelQueryHint]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF__ScoreComp__isSub__1BD46F8A] DEFAULT ((0)) FOR [isSubtable]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF_ScoreComposite_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF_ScoreComposite_FrameworkID] DEFAULT ((0)) FOR [FrameworkID]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF_ScoreComposite_BoundsDataTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [BoundsDataTableGUID]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF__ScoreComp__Modif__7E73876C] DEFAULT (getdate()) FOR [ModifiedAt]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF_ScoreComposite_TableEditorConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TableEditorConfigGUID]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF__ScoreComp__IsUsi__78DC0A5C] DEFAULT ((0)) FOR [IsUsingHashJoin]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF_ScoreComposite_CompositeGUID] DEFAULT (newid()) FOR [CompositeGUID]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF_ScoreComposite_IsWrittenToDB] DEFAULT ((1)) FOR [IsWrittenToDB]; GO
ALTER TABLE [dbo].[ScoreComposite] ADD CONSTRAINT [DF_ScoreComposite_FriendlyNam] DEFAULT ('') FOR [FriendlyName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreCompositeLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreCompositeLink] (
[CompositeLinkGUID] uniqueidentifier NOT NULL,
[CompositeGUID] uniqueidentifier NOT NULL,
[Type] smallint NOT NULL,
[Key1GUID] uniqueidentifier NOT NULL,
[Key2GUID] uniqueidentifier NOT NULL,
[Key1AttributeGUID] uniqueidentifier NOT NULL,
[Key2AttributeGUID] uniqueidentifier NOT NULL,
[SQLCustomLinkExpression] nvarchar(4000) NOT NULL,
[PlaceholderIndexMeasureGUID] uniqueidentifier NOT NULL,
[IsPlaceholder] bit NOT NULL,
[IsFixedIndex] bit NOT NULL,
[CompositeLinkID] int NOT NULL,
[ModifiedAt] datetime NOT NULL,
PRIMARY KEY ([CompositeLinkGUID])
);
GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [FK_ScoreCompositeLink_ScoreAttribute] FOREIGN KEY ([Key1GUID]) REFERENCES [dbo].[ScoreAttribute] ([AttributeGUID]); GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [FK_ScoreCompositeLink_ScoreAttribute1] FOREIGN KEY ([Key2GUID]) REFERENCES [dbo].[ScoreAttribute] ([AttributeGUID]); GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [FK_ScoreCompositeLink_ScoreComposite] FOREIGN KEY ([CompositeGUID]) REFERENCES [dbo].[ScoreComposite] ([CompositeGUID]); GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_PlaceholderIndexMeasureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlaceholderIndexMeasureGUID]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_IsPlaceholder] DEFAULT ((0)) FOR [IsPlaceholder]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_IsFixedIndex] DEFAULT ((0)) FOR [IsFixedIndex]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF__ScoreComp__Modif__005BCFDE] DEFAULT (getdate()) FOR [ModifiedAt]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_Table_1_DimensionKeyMappingGUID] DEFAULT (newid()) FOR [CompositeLinkGUID]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_CompositeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CompositeGUID]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_Type] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_Key1GUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [Key1GUID]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_Key2GUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [Key2GUID]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_Key1AttributeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [Key1AttributeGUID]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_Key2AttributeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [Key2AttributeGUID]; GO
ALTER TABLE [dbo].[ScoreCompositeLink] ADD CONSTRAINT [DF_ScoreCompositeLink_SQLCustomLinkExpression] DEFAULT ('') FOR [SQLCustomLinkExpression]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDataHistoryLine ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDataHistoryLine] (
[DataHistoryLineID] int NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[TableName] nvarchar(64) NOT NULL,
[RowID] int NOT NULL,
[BeforeValues] nvarchar(max) NOT NULL,
[AfterValues] nvarchar(max) NOT NULL,
PRIMARY KEY ([DataHistoryLineID])
);
GO
ALTER TABLE [dbo].[ScoreDataHistoryLine] ADD CONSTRAINT [DF_ScoreDataHistoryLine_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDataTable ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDataTable] (
[DataTableGUID] uniqueidentifier NOT NULL,
[FriendlyName] nvarchar(64) NOT NULL,
[Description] varchar(2000) NOT NULL,
[SQLSchemaName] nvarchar(128) NOT NULL,
[SQLObjectName] nvarchar(128) NOT NULL,
[SQLTableAlias] nvarchar(50) NOT NULL,
[IsWrittenToDB] bit NOT NULL,
[DisplayFormatAttributeGUID] uniqueidentifier NOT NULL,
[DataTableID] int NOT NULL,
[SQLTableAliasUnique] nvarchar(72) NULL,
[IsCompositeMappingTable] bit NOT NULL,
[FrameworkID] tinyint NOT NULL,
[ModifiedAt] datetime NOT NULL,
[IsWrittenIfZero] bit NOT NULL,
[GlobalID] nvarchar(128) NULL,
[IsCompositeBoundsTable] bit NOT NULL,
[DisplayFormatAttributeDimensionGUID] uniqueidentifier NOT NULL,
[IsClientFriendly] bit NOT NULL,
[OverrideLoadBySQLSchemaName] nvarchar(200) NOT NULL,
[OverrideLoadBySQLObjectName] nvarchar(200) NOT NULL,
[IsGeneratingSelectIntoTempTable] bit NOT NULL,
[ModelQueryHint] nvarchar(900) NOT NULL,
[DIDeleteQueryHint] nvarchar(900) NOT NULL,
PRIMARY KEY ([DataTableGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_ScoreDataTable_SQLTableAlias] ON [dbo].[ScoreDataTable] ([SQLTableAliasUnique]);
GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF__ScoreData__DIDel__0AC084A0] DEFAULT ('') FOR [DIDeleteQueryHint]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_ScoreDataTableGUID] DEFAULT (newid()) FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_SQLSchemaName] DEFAULT ('') FOR [SQLSchemaName]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_SQLObjectName] DEFAULT ('') FOR [SQLObjectName]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_SQLTableAlias] DEFAULT ('') FOR [SQLTableAlias]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_IsWrittenToDB] DEFAULT ((1)) FOR [IsWrittenToDB]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_DisplayFormatAttributeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DisplayFormatAttributeGUID]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_IsCompositeMappingTable] DEFAULT ((0)) FOR [IsCompositeMappingTable]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_FrameworkID] DEFAULT ((0)) FOR [FrameworkID]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF__ScoreData__Overr__235C540D] DEFAULT ('') FOR [OverrideLoadBySQLSchemaName]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_IsWrittenIfZero] DEFAULT ((0)) FOR [IsWrittenIfZero]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF__ScoreData__Overr__24507846] DEFAULT ('') FOR [OverrideLoadBySQLObjectName]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF__ScoreData__IsCli__302CA709] DEFAULT ((0)) FOR [IsClientFriendly]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_DisplayFormatAttributeDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DisplayFormatAttributeDimensionGUID]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF__ScoreData__IsGen__426291E9] DEFAULT ((0)) FOR [IsGeneratingSelectIntoTempTable]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_GlobalID] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF_ScoreDataTable_IsCompositeBoundsTable] DEFAULT ((0)) FOR [IsCompositeBoundsTable]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF__ScoreData__Modif__02441850] DEFAULT (getdate()) FOR [ModifiedAt]; GO
ALTER TABLE [dbo].[ScoreDataTable] ADD CONSTRAINT [DF__ScoreData__Model__7F575CE7] DEFAULT ('OPTION(RECOMPILE)') FOR [ModelQueryHint]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDataTableKeyLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDataTableKeyLink] (
[DataTableKeyLinkGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[KeyGUID] uniqueidentifier NOT NULL,
[ObjectID] int NOT NULL,
[ColumnID] int NOT NULL,
[SchemaName] nvarchar(128) NOT NULL,
[ObjectName] nvarchar(128) NOT NULL,
[ColumnName] nvarchar(128) NOT NULL,
[ObjectType] int NOT NULL,
[MaxLength] smallint NOT NULL,
[IsComputed] bit NOT NULL,
[IsNullable] bit NOT NULL,
[Scale] tinyint NOT NULL,
[Precision] tinyint NOT NULL,
[IsIdentity] bit NOT NULL,
[ColumnTypeValue] tinyint NOT NULL,
[IdentityIncrement] int NOT NULL,
[IdentitySeed] int NOT NULL,
[DefaultValueDefinition] nvarchar(max) NOT NULL,
[IsPartOfUniqueIndex] bit NOT NULL,
[IsUniqueIndex] bit NOT NULL,
[IsPartOfPrimaryKey] bit NOT NULL,
[IsPrimaryKey] bit NOT NULL,
[ComputedValueDefinition] nvarchar(max) NOT NULL,
[IsForeignKeyed] bit NOT NULL,
[ForeignKeySchema] nvarchar(128) NOT NULL,
[ForeignKeyTable] nvarchar(128) NOT NULL,
[ForeignKeyColumn] nvarchar(128) NOT NULL,
[ForeignKeyOnDelete] nvarchar(128) NOT NULL,
[ModifiedAt] datetime NOT NULL,
[IsRequired] bit NOT NULL,
[Description] nvarchar(1000) NOT NULL,
PRIMARY KEY ([DataTableKeyLinkGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_ScoreDataTableKeyLink_UniqueKey] ON [dbo].[ScoreDataTableKeyLink] ([DataTableGUID], [KeyGUID]);
GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [FK_ScoreDataTableKeyLink_ScoreAttribute] FOREIGN KEY ([KeyGUID]) REFERENCES [dbo].[ScoreAttribute] ([AttributeGUID]); GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [FK_ScoreDataTableKeyLink_ScoreDataTable] FOREIGN KEY ([DataTableGUID]) REFERENCES [dbo].[ScoreDataTable] ([DataTableGUID]); GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__IsIde__36ECEAB9] DEFAULT ((0)) FOR [IsIdentity]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Colum__37E10EF2] DEFAULT ((0)) FOR [ColumnTypeValue]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Ident__38D5332B] DEFAULT ((0)) FOR [IdentityIncrement]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Ident__39C95764] DEFAULT ((0)) FOR [IdentitySeed]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Defau__3ABD7B9D] DEFAULT ('') FOR [DefaultValueDefinition]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__IsPar__3BB19FD6] DEFAULT ((0)) FOR [IsPartOfUniqueIndex]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__IsUni__3CA5C40F] DEFAULT ((0)) FOR [IsUniqueIndex]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF_ScoreDataTableKeyLink_DataTableKeyLinkGUID] DEFAULT (newid()) FOR [DataTableKeyLinkGUID]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__IsPar__3D99E848] DEFAULT ((0)) FOR [IsPartOfPrimaryKey]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF_ScoreDataTableKeyLink_DataTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__IsPri__3E8E0C81] DEFAULT ((0)) FOR [IsPrimaryKey]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF_ScoreDataTableKeyLink_KeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [KeyGUID]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Compu__3F8230BA] DEFAULT ('') FOR [ComputedValueDefinition]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__IsFor__407654F3] DEFAULT ((0)) FOR [IsForeignKeyed]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Forei__416A792C] DEFAULT ('') FOR [ForeignKeySchema]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Forei__425E9D65] DEFAULT ('') FOR [ForeignKeyTable]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Forei__4352C19E] DEFAULT ('') FOR [ForeignKeyColumn]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Forei__4446E5D7] DEFAULT ('') FOR [ForeignKeyOnDelete]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Modif__0614A934] DEFAULT (getdate()) FOR [ModifiedAt]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Descr__1854B5B5] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__IsReq__749BD5C3] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Objec__2C6F5C46] DEFAULT ((0)) FOR [ObjectID]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Colum__2D63807F] DEFAULT ((0)) FOR [ColumnID]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Schem__2E57A4B8] DEFAULT ('') FOR [SchemaName]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Objec__2F4BC8F1] DEFAULT ('') FOR [ObjectName]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Colum__303FED2A] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Objec__31341163] DEFAULT ((0)) FOR [ObjectType]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__MaxLe__3228359C] DEFAULT ((0)) FOR [MaxLength]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__IsCom__331C59D5] DEFAULT ((0)) FOR [IsComputed]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__IsNul__34107E0E] DEFAULT ((0)) FOR [IsNullable]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Scale__3504A247] DEFAULT ((0)) FOR [Scale]; GO
ALTER TABLE [dbo].[ScoreDataTableKeyLink] ADD CONSTRAINT [DF__ScoreData__Preci__35F8C680] DEFAULT ((0)) FOR [Precision]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDataTableLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDataTableLink] (
[DataTableLinkGUID] uniqueidentifier NOT NULL,
[DataTable1GUID] uniqueidentifier NOT NULL,
[DataTable1KeyGUID] uniqueidentifier NOT NULL,
[DataTable2GUID] uniqueidentifier NOT NULL,
[DataTable2KeyGUID] uniqueidentifier NOT NULL,
[IsReportingOnly] bit NOT NULL,
[IsReceivingParentTableColumns] bit NOT NULL,
[IsChildDataCached] bit NOT NULL,
PRIMARY KEY ([DataTableLinkGUID])
);
GO
ALTER TABLE [dbo].[ScoreDataTableLink] ADD CONSTRAINT [DF_ScoreDataTableLink_DataTable1GUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTable1GUID]; GO
ALTER TABLE [dbo].[ScoreDataTableLink] ADD CONSTRAINT [DF_ScoreDataTableLink_DataTable1KeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTable1KeyGUID]; GO
ALTER TABLE [dbo].[ScoreDataTableLink] ADD CONSTRAINT [DF_ScoreDataTableLink_DataTable2GUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTable2GUID]; GO
ALTER TABLE [dbo].[ScoreDataTableLink] ADD CONSTRAINT [df_IsChildDataCached] DEFAULT ((0)) FOR [IsChildDataCached]; GO
ALTER TABLE [dbo].[ScoreDataTableLink] ADD CONSTRAINT [DF_ScoreDataTableLink_DataTableLinkGUID] DEFAULT (newid()) FOR [DataTableLinkGUID]; GO
ALTER TABLE [dbo].[ScoreDataTableLink] ADD CONSTRAINT [DF_ScoreDataTableLink_DataTable2KeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTable2KeyGUID]; GO
ALTER TABLE [dbo].[ScoreDataTableLink] ADD CONSTRAINT [DF__ScoreData__IsRep__6B365FCD] DEFAULT ((0)) FOR [IsReportingOnly]; GO
ALTER TABLE [dbo].[ScoreDataTableLink] ADD CONSTRAINT [DF__ScoreData__IsRec__6E738A82] DEFAULT ((0)) FOR [IsReceivingParentTableColumns]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDataTableMeasureGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDataTableMeasureGroup] (
[ScoreDataTableMeasureGroupGUID] uniqueidentifier NOT NULL,
[MeasureGroupName] nvarchar(200) NOT NULL,
[CubeViewName] nvarchar(200) NOT NULL,
[ScoreDataTableGUID] uniqueidentifier NOT NULL,
[IsPrimary] bit NOT NULL,
[DatasourceViewName] nvarchar(200) NOT NULL,
PRIMARY KEY ([ScoreDataTableMeasureGroupGUID])
);
GO
ALTER TABLE [dbo].[ScoreDataTableMeasureGroup] ADD CONSTRAINT [DF__ScoreData__IsPri__0B96ABB9] DEFAULT ((0)) FOR [IsPrimary]; GO
ALTER TABLE [dbo].[ScoreDataTableMeasureGroup] ADD CONSTRAINT [DF__ScoreData__Datas__152015F3] DEFAULT ('') FOR [DatasourceViewName]; GO
ALTER TABLE [dbo].[ScoreDataTableMeasureGroup] ADD CONSTRAINT [DF__ScoreData__Score__161E5BCD] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScoreDataTableGUID]; GO
ALTER TABLE [dbo].[ScoreDataTableMeasureGroup] ADD CONSTRAINT [DF__ScoreData__Score__5E778A7A] DEFAULT (newid()) FOR [ScoreDataTableMeasureGroupGUID]; GO
ALTER TABLE [dbo].[ScoreDataTableMeasureGroup] ADD CONSTRAINT [DF__ScoreData__Measu__6153F725] DEFAULT ('') FOR [MeasureGroupName]; GO
ALTER TABLE [dbo].[ScoreDataTableMeasureGroup] ADD CONSTRAINT [DF__ScoreData__CubeV__62481B5E] DEFAULT ('') FOR [CubeViewName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDatatableSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDatatableSetting] (
[DataTableGUID] uniqueidentifier NOT NULL,
[IsUsed] bit NOT NULL,
[IsRequired] bit NOT NULL,
PRIMARY KEY ([DataTableGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [UQ_SCOREDATATABLESETTING_DATATABLEGUID] ON [dbo].[ScoreDatatableSetting] ([DataTableGUID]);
GO
ALTER TABLE [dbo].[ScoreDatatableSetting] ADD CONSTRAINT [DF__ScoreData__DataT__4D620D11] DEFAULT (newid()) FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[ScoreDatatableSetting] ADD CONSTRAINT [DF__ScoreData__IsUse__4E56314A] DEFAULT ((0)) FOR [IsUsed]; GO
ALTER TABLE [dbo].[ScoreDatatableSetting] ADD CONSTRAINT [DF__ScoreData__IsReq__5EAC94A4] DEFAULT ((0)) FOR [IsRequired]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDimension ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDimension] (
[DimensionGUID] uniqueidentifier NOT NULL,
[FriendlyName] nvarchar(128) NOT NULL,
[Description] varchar(2000) NOT NULL,
[SQLTableAlias] nvarchar(50) NOT NULL,
[DefaultKeyGUID] uniqueidentifier NOT NULL,
[DefaultHierarchyGUID] uniqueidentifier NOT NULL,
[DefaultLookupKeyGUID] uniqueidentifier NOT NULL,
[IsSecured] bit NOT NULL,
[PermissionSetID] smallint NOT NULL,
[SQLSchemaName] nvarchar(128) NOT NULL,
[SQLObjectName] nvarchar(max) NOT NULL,
[DefaultMemberGUID] uniqueidentifier NOT NULL,
[IsSysAdminOnly] bit NOT NULL,
[IsAllowMemberDelete] bit NOT NULL,
[IsAllowMemberAdd] bit NOT NULL,
[PrimaryGroupGUID] uniqueidentifier NOT NULL,
[SQLTableAliasUnique] nvarchar(72) NULL,
[DimensionID] int NOT NULL,
[IsStock] bit NOT NULL,
[DateModified] datetime NOT NULL,
[PickerType] int NOT NULL,
[IsSharingSecurity] bit NOT NULL,
[DimensionVersion] int NOT NULL,
[IsGeneratingWrapperView] bit NOT NULL,
[GlobalID] nvarchar(50) NOT NULL,
[DimensionEditorMode] int NOT NULL,
[IsSensitivityRiskHidden] bit NOT NULL,
[PHIDisclaimer] nvarchar(2000) NOT NULL,
[CopyrightDisclaimer] nvarchar(2000) NOT NULL,
[IsSecurityReadOnly] bit NOT NULL,
[IsSecuredSetupOnly] bit NOT NULL,
[IsClientFriendly] bit NOT NULL,
[IsSecurityTriggersEnabled] bit NOT NULL,
[HelpTextAttributeGUID] uniqueidentifier NOT NULL,
[IsEditable] bit NOT NULL,
[IsCustomAttributeAllowed] bit NOT NULL,
[IsCustom] bit NOT NULL,
[ParentDimensionGUID] uniqueidentifier NOT NULL,
[StandardCodesLastUpdated] smalldatetime NOT NULL,
[StandardCodesVersion] smalldatetime NOT NULL,
[IsStandard] bit NOT NULL,
[IsDisablingHistoryTriggers] bit NOT NULL,
PRIMARY KEY ([DimensionGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [NCU_FriendlyName] ON [dbo].[ScoreDimension] ([FriendlyName]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_ScoreDimension_SQLTableAlias] ON [dbo].[ScoreDimension] ([SQLTableAliasUnique]);
GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_SQLTableAlias] DEFAULT ('') FOR [SQLTableAlias]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsSecuredSetupOnly] DEFAULT ((0)) FOR [IsSecuredSetupOnly]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_DefaultKeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultKeyGUID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_DefaultHeirarchyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultHierarchyGUID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_DefaultLookupKeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultLookupKeyGUID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsSecured] DEFAULT ((0)) FOR [IsSecured]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_PermissionSetID] DEFAULT ((0)) FOR [PermissionSetID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_SQLSchema] DEFAULT ('') FOR [SQLSchemaName]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_SQLObjectName] DEFAULT ('') FOR [SQLObjectName]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_DefaultMemberGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultMemberGUID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsSysAdminOnly] DEFAULT ((0)) FOR [IsSysAdminOnly]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsAllowMemberDelete] DEFAULT ((1)) FOR [IsAllowMemberDelete]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsAllowMemberAdd] DEFAULT ((1)) FOR [IsAllowMemberAdd]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__Stand__0D222ED4] DEFAULT ('1900-01-01 00:00:00') FOR [StandardCodesLastUpdated]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsStock] DEFAULT ((0)) FOR [IsStock]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__Stand__0E16530D] DEFAULT ('1900-01-01 00:00:00') FOR [StandardCodesVersion]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_DateModified] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__IsSta__0F0A7746] DEFAULT ((0)) FOR [IsStandard]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_PickerType] DEFAULT ((0)) FOR [PickerType]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_DimensionVersion] DEFAULT ((2)) FOR [DimensionVersion]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsGeneratingWrapperView] DEFAULT ((0)) FOR [IsGeneratingWrapperView]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__PHIDi__21B13D24] DEFAULT ('') FOR [PHIDisclaimer]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__Copyr__22A5615D] DEFAULT ('') FOR [CopyrightDisclaimer]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__IsDis__26F8A61E] DEFAULT ((0)) FOR [IsDisablingHistoryTriggers]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__IsCli__2F3882D0] DEFAULT ((0)) FOR [IsClientFriendly]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsSecurityTriggersEnabled] DEFAULT ((1)) FOR [IsSecurityTriggersEnabled]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__IsCus__3AC439E9] DEFAULT ((0)) FOR [IsCustom]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__IsCus__40E72793] DEFAULT ((1)) FOR [IsCustomAttributeAllowed]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__HelpT__4B0195F7] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HelpTextAttributeGUID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_DimensionEditorMode] DEFAULT ((0)) FOR [DimensionEditorMode]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_GlobalID] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsSharingSecurity] DEFAULT ((0)) FOR [IsSharingSecurity]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__Paren__60F66677] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentDimensionGUID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__IsSen__65A4DE10] DEFAULT ((0)) FOR [IsSensitivityRiskHidden]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF__ScoreDime__IsEdi__664DB66C] DEFAULT ((1)) FOR [IsEditable]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_PrimaryGroupGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PrimaryGroupGUID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_IsSecurityReadOnly] DEFAULT ((0)) FOR [IsSecurityReadOnly]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_DimensionGUID] DEFAULT (newid()) FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[ScoreDimension] ADD CONSTRAINT [DF_ScoreDimension_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDimensionFramework ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDimensionFramework] (
[DimensionGUID] uniqueidentifier NOT NULL,
[FrameworkID] tinyint NOT NULL,
PRIMARY KEY ([DimensionGUID], [FrameworkID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDimensionGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDimensionGroup] (
[DimensionGroupGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(128) NOT NULL,
[Description] varchar(2000) NOT NULL,
[SchemaName] nvarchar(128) NOT NULL,
[ObjectName] nvarchar(128) NOT NULL,
[IsStock] bit NOT NULL,
[DateModified] datetime NOT NULL,
PRIMARY KEY ([DimensionGroupGUID])
);
GO
ALTER TABLE [dbo].[ScoreDimensionGroup] ADD CONSTRAINT [FK_ScoreDimensionGroup_ScoreDimension] FOREIGN KEY ([DimensionGUID]) REFERENCES [dbo].[ScoreDimension] ([DimensionGUID]); GO
ALTER TABLE [dbo].[ScoreDimensionGroup] ADD CONSTRAINT [DF__ScoreDime__Dimen__758215A1] DEFAULT (newid()) FOR [DimensionGroupGUID]; GO
ALTER TABLE [dbo].[ScoreDimensionGroup] ADD CONSTRAINT [DF__ScoreDimen__Name__776A5E13] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[ScoreDimensionGroup] ADD CONSTRAINT [DF__ScoreDime__Descr__785E824C] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ScoreDimensionGroup] ADD CONSTRAINT [DF__ScoreDime__Schem__7952A685] DEFAULT ('') FOR [SchemaName]; GO
ALTER TABLE [dbo].[ScoreDimensionGroup] ADD CONSTRAINT [DF__ScoreDime__Objec__7A46CABE] DEFAULT ('') FOR [ObjectName]; GO
ALTER TABLE [dbo].[ScoreDimensionGroup] ADD CONSTRAINT [DF__ScoreDime__IsSto__7B3AEEF7] DEFAULT ((0)) FOR [IsStock]; GO
ALTER TABLE [dbo].[ScoreDimensionGroup] ADD CONSTRAINT [DF_ScoreDimensionGroup_DateModified] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[ScoreDimensionGroup] ADD CONSTRAINT [DF__ScoreDime__Dimen__767639DA] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDimensionGroupViewHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDimensionGroupViewHistory] (
[ScoreDimensionGroupViewHistoryID] int NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[DimensionGroupGUID] uniqueidentifier NOT NULL,
[ViewBefore] nvarchar(max) NOT NULL,
[ViewAfter] nvarchar(max) NOT NULL,
[DateModified] datetime NOT NULL,
PRIMARY KEY ([ScoreDimensionGroupViewHistoryID])
);
GO
ALTER TABLE [dbo].[ScoreDimensionGroupViewHistory] ADD CONSTRAINT [DF__ScoreDime__Dimen__5ECBC4DE] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[ScoreDimensionGroupViewHistory] ADD CONSTRAINT [DF__ScoreDime__Dimen__5FBFE917] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGroupGUID]; GO
ALTER TABLE [dbo].[ScoreDimensionGroupViewHistory] ADD CONSTRAINT [DF__ScoreDime__ViewB__60B40D50] DEFAULT ('') FOR [ViewBefore]; GO
ALTER TABLE [dbo].[ScoreDimensionGroupViewHistory] ADD CONSTRAINT [DF__ScoreDime__ViewA__61A83189] DEFAULT ('') FOR [ViewAfter]; GO
ALTER TABLE [dbo].[ScoreDimensionGroupViewHistory] ADD CONSTRAINT [DF__ScoreDime__DateM__629C55C2] DEFAULT (getdate()) FOR [DateModified]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDimensionHistoryLine ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDimensionHistoryLine] (
[DimensionHistoryLineID] int NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[TableName] nvarchar(64) NOT NULL,
[MemberGUID] uniqueidentifier NOT NULL,
[BeforeValues] nvarchar(max) NOT NULL,
[AfterValues] nvarchar(max) NOT NULL,
PRIMARY KEY ([DimensionHistoryLineID])
);
CREATE NONCLUSTERED INDEX [NC_HISTORYITEMGUID_DATETIMESTAMP] ON [dbo].[ScoreDimensionHistoryLine] ([HistoryItemGUID], [DateTimeStamp]);
CREATE NONCLUSTERED INDEX [NC_MEMBERGUID_DATETIMESTAMP] ON [dbo].[ScoreDimensionHistoryLine] ([MemberGUID], [DateTimeStamp]);
GO
ALTER TABLE [dbo].[ScoreDimensionHistoryLine] ADD CONSTRAINT [DF_ScoreDimensionHistoryLine_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[ScoreDimensionHistoryLine] ADD CONSTRAINT [DF_ScoreDimensionHistoryLine_TableName] DEFAULT ('') FOR [TableName]; GO
ALTER TABLE [dbo].[ScoreDimensionHistoryLine] ADD CONSTRAINT [DF_ScoreDimensionHistoryLine_BeforeValues] DEFAULT ('') FOR [BeforeValues]; GO
ALTER TABLE [dbo].[ScoreDimensionHistoryLine] ADD CONSTRAINT [DF_ScoreDimensionHistoryLine_AfterValues] DEFAULT ('') FOR [AfterValues]; GO
ALTER TABLE [dbo].[ScoreDimensionHistoryLine] ADD CONSTRAINT [DF_ScoreDimensionHistoryLine_HistoryItemGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[ScoreDimensionHistoryLine] ADD CONSTRAINT [DF_ScoreDimensionHistoryLine_MemberGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MemberGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreDimensionRegenRequest ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreDimensionRegenRequest] (
[RequestGUID] uniqueidentifier NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[IssuedAt] datetime NOT NULL,
[ErrorMessage] nvarchar(max) NOT NULL,
[Recommendation] nvarchar(max) NOT NULL,
[Author] nvarchar(100) NOT NULL,
[MigrationName] nvarchar(400) NOT NULL,
[LastProcessAttempt] datetime NOT NULL,
PRIMARY KEY ([RequestGUID])
);
GO
ALTER TABLE [dbo].[ScoreDimensionRegenRequest] ADD CONSTRAINT [DF_ScoreDimensionRegenRequest_LastProcessAttempt] DEFAULT ('1/1/1900 12:00:00 AM') FOR [LastProcessAttempt]; GO
ALTER TABLE [dbo].[ScoreDimensionRegenRequest] ADD CONSTRAINT [DF_ScoreDimensionRegenRequest_MigrationName] DEFAULT ('') FOR [MigrationName]; GO
ALTER TABLE [dbo].[ScoreDimensionRegenRequest] ADD CONSTRAINT [DF_ScoreDimensionRegenRequest_ErrorMessage] DEFAULT ('') FOR [ErrorMessage]; GO
ALTER TABLE [dbo].[ScoreDimensionRegenRequest] ADD CONSTRAINT [DF_ScoreDimensionRegenRequest_Recommendation] DEFAULT ('') FOR [Recommendation]; GO
ALTER TABLE [dbo].[ScoreDimensionRegenRequest] ADD CONSTRAINT [DF_ScoreDimensionRegenRequest_Author] DEFAULT ('') FOR [Author]; GO
ALTER TABLE [dbo].[ScoreDimensionRegenRequest] ADD CONSTRAINT [DF_ScoreDimensionRegenRequest_RequestGUID] DEFAULT (newid()) FOR [RequestGUID]; GO
ALTER TABLE [dbo].[ScoreDimensionRegenRequest] ADD CONSTRAINT [DF_ScoreDimensionRegenRequest_GlobalID] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[ScoreDimensionRegenRequest] ADD CONSTRAINT [DF_ScoreDimensionRegenRequest_IssuedAt] DEFAULT (getdate()) FOR [IssuedAt]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreFillInTemplateItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreFillInTemplateItem] (
[FillInTemplateName] nvarchar(100) NOT NULL,
[FillInTemplateItemID] int NOT NULL,
[PlaceholderSectionMemberGUID] uniqueidentifier NOT NULL,
[PlaceholderSectionIndex] int NULL,
[IsQuery] bit NOT NULL,
[Query] nvarchar(max) NULL,
[IsCurrentModelGUID] bit NOT NULL,
[IsConstantMemberGUID] bit NOT NULL,
[ConstantMemberGUID] uniqueidentifier NULL,
PRIMARY KEY ([FillInTemplateItemID])
);
GO
ALTER TABLE [dbo].[ScoreFillInTemplateItem] ADD CONSTRAINT [DF_ScoreFillInTemplateItem_FillInTemplateName] DEFAULT ('') FOR [FillInTemplateName]; GO
ALTER TABLE [dbo].[ScoreFillInTemplateItem] ADD CONSTRAINT [DF_ScoreFillInTemplate_IsQuery] DEFAULT ((0)) FOR [IsQuery]; GO
ALTER TABLE [dbo].[ScoreFillInTemplateItem] ADD CONSTRAINT [DF_ScoreFillInTemplate_IsCurrentModelGUID] DEFAULT ((0)) FOR [IsCurrentModelGUID]; GO
ALTER TABLE [dbo].[ScoreFillInTemplateItem] ADD CONSTRAINT [DF_ScoreFillInTemplateItem_IsConstantMemberGUID] DEFAULT ((0)) FOR [IsConstantMemberGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreFillin ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreFillin] (
[FillinGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[PlaceholderSectionMemberGUID] uniqueidentifier NOT NULL,
[PlaceholderIndex] int NOT NULL,
[FillinMemberGUID] uniqueidentifier NOT NULL,
[FillinMemberName] nvarchar(max) NOT NULL,
[IsDeleted] bit NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[RowID] int NOT NULL,
[IsSystemSet] bit NOT NULL,
PRIMARY KEY ([RowID])
);
CREATE CLUSTERED INDEX [IX_ScoreFillin_Cluster] ON [dbo].[ScoreFillin] ([ModelGUID], [PlaceholderSectionMemberGUID]);
CREATE NONCLUSTERED INDEX [idx_isdeleted] ON [dbo].[ScoreFillin] ([IsDeleted]) INCLUDE ([FillinGUID]);
CREATE NONCLUSTERED INDEX [IDX_ScoreFillin] ON [dbo].[ScoreFillin] ([ModelGUID], [PlaceholderSectionMemberGUID], [FillinMemberGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [IDX_ScoreFillin_Unique] ON [dbo].[ScoreFillin] ([ModelGUID], [PlaceholderSectionMemberGUID], [PlaceholderIndex], [FillinMemberGUID], [IsDeleted]);
CREATE NONCLUSTERED INDEX [IDX_ScoreFillin_FillinMemberGUID] ON [dbo].[ScoreFillin] ([FillinMemberGUID]);
GO
ALTER TABLE [dbo].[ScoreFillin] ADD CONSTRAINT [FK_ScoreFillin_XPlan] FOREIGN KEY ([ModelGUID]) REFERENCES [dbo].[XPlan] ([PlanGUID]); GO
ALTER TABLE [dbo].[ScoreFillin] ADD CONSTRAINT [DF_ScoreFillin_PlaceholderIndex] DEFAULT ((0)) FOR [PlaceholderIndex]; GO
ALTER TABLE [dbo].[ScoreFillin] ADD CONSTRAINT [DF_ScoreFillin_IsDeleted] DEFAULT ((0)) FOR [IsDeleted]; GO
ALTER TABLE [dbo].[ScoreFillin] ADD CONSTRAINT [DF_ScoreFillin_HistoryItemGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[ScoreFillin] ADD CONSTRAINT [DF_ScoreFillin_ScoreFillinGUID] DEFAULT (newid()) FOR [FillinGUID]; GO
ALTER TABLE [dbo].[ScoreFillin] ADD CONSTRAINT [DF_ScoreFillin_FillInMemberName] DEFAULT (N'default') FOR [FillinMemberName]; GO
ALTER TABLE [dbo].[ScoreFillin] ADD CONSTRAINT [DF__ScoreFill__IsSys__7440DD13] DEFAULT ((0)) FOR [IsSystemSet]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreFillinExclusivityLogItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreFillinExclusivityLogItem] (
[ScoreFillinExclusivityLogItemGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[FillinGUID] uniqueidentifier NOT NULL,
[FillinMemberGUID] uniqueidentifier NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[Message] nvarchar(max) NOT NULL,
[TaskGUID] uniqueidentifier NOT NULL,
[IsError] bit NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[FillinDimensionGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ScoreFillinExclusivityLogItemGUID])
);
GO
ALTER TABLE [dbo].[ScoreFillinExclusivityLogItem] ADD CONSTRAINT [DF_dbo_ScoreFillinExclusivityLogItem_FillinDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FillinDimensionGUID]; GO
ALTER TABLE [dbo].[ScoreFillinExclusivityLogItem] ADD CONSTRAINT [DF_dbo_ScoreFillinExclusivityLogItem_IsError] DEFAULT ((0)) FOR [IsError]; GO
ALTER TABLE [dbo].[ScoreFillinExclusivityLogItem] ADD CONSTRAINT [DF_dbo_ScoreFillinExclusivityLogItem_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[ScoreFillinExclusivityLogItem] ADD CONSTRAINT [DF_ScoreFillinExclusivityLogItem_ScoreFillinExclusivityLogItemGUID] DEFAULT (newid()) FOR [ScoreFillinExclusivityLogItemGUID]; GO
ALTER TABLE [dbo].[ScoreFillinExclusivityLogItem] ADD CONSTRAINT [DF_ScoreFillinExclusivityLogItem_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreFillinRefreshLogItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreFillinRefreshLogItem] (
[ScoreFillinRefreshLogItemGUID] uniqueidentifier NOT NULL,
[FillinGUID] uniqueidentifier NOT NULL,
[FillinMemberGUID] uniqueidentifier NOT NULL,
[Action] smallint NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[TaskGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[IsSystemSet] bit NOT NULL,
[FillinMemberName] nvarchar(max) NOT NULL,
[SectionName] nvarchar(100) NOT NULL,
PRIMARY KEY ([ScoreFillinRefreshLogItemGUID])
);
CREATE NONCLUSTERED INDEX [IX_ScoreFillinRefreshLogItem_FillinMemberGUID] ON [dbo].[ScoreFillinRefreshLogItem] ([FillinMemberGUID]) INCLUDE ([ModelGUID], [FillinMemberName]);
CREATE NONCLUSTERED INDEX [IX_ScoreFillinRefreshLogItem_ModelGUID] ON [dbo].[ScoreFillinRefreshLogItem] ([ModelGUID]);
CREATE NONCLUSTERED INDEX [NCNU_HistoryItemGUID] ON [dbo].[ScoreFillinRefreshLogItem] ([HistoryItemGUID]);
GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF__ScoreFill__IsSys__08325F64] DEFAULT ((0)) FOR [IsSystemSet]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF__ScoreFill__Filli__0926839D] DEFAULT ('') FOR [FillinMemberName]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF__ScoreFill__Histo__073E3B2B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF_ScoreFillinRefreshLogItem_ScoreFillinRefreshLogItemGUID] DEFAULT (newid()) FOR [ScoreFillinRefreshLogItemGUID]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF_ScoreFillinRefreshLogItem_FillinGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FillinGUID]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF_ScoreFillinRefreshLogItem_FillinMemberGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FillinMemberGUID]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF_ScoreFillinRefreshLogItem_Action] DEFAULT ((-1)) FOR [Action]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF__ScoreFill__Secti__2A1D6314] DEFAULT ('') FOR [SectionName]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF_ScoreFillinRefreshLogItem_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF_ScoreFillinRefreshLogItem_TaskGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TaskGUID]; GO
ALTER TABLE [dbo].[ScoreFillinRefreshLogItem] ADD CONSTRAINT [DF__ScoreFill__Model__7AB868B5] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreFillinSetManyStaging ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreFillinSetManyStaging] (
[InstanceGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[PlaceholderSectionMemberGUID] uniqueidentifier NOT NULL,
[SortOrder] int NOT NULL,
[FillinMemberGUID] uniqueidentifier NOT NULL,
[FillinMemberName] nvarchar(50) NOT NULL,
[MakeUnique] uniqueidentifier NOT NULL
);
GO
ALTER TABLE [dbo].[ScoreFillinSetManyStaging] ADD CONSTRAINT [DF_ScoreFillinSetManyStaging_MakeUnique] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MakeUnique]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreFillin_old ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreFillin_old] (
[FillinGUID] uniqueidentifier NOT NULL,
[ModelGUID] uniqueidentifier NOT NULL,
[PlaceholderSectionMemberGUID] uniqueidentifier NOT NULL,
[PlaceholderIndex] int NOT NULL,
[FillinMemberGUID] uniqueidentifier NOT NULL,
[FillinMemberName] nvarchar(max) NOT NULL,
[IsDeleted] bit NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[RowID] int NOT NULL,
[IsSystemSet] bit NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreHierarchy ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreHierarchy] (
[HierarchyGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[FriendlyName] nvarchar(128) NOT NULL,
[PathAlias] nvarchar(12) NOT NULL,
[DateModified] datetime NOT NULL,
[HierarchyID] int NOT NULL,
[GlobalID] nvarchar(128) NOT NULL,
[IsMR] bit NOT NULL,
PRIMARY KEY ([HierarchyGUID])
);
GO
ALTER TABLE [dbo].[ScoreHierarchy] ADD CONSTRAINT [FK_ScoreHierarchy_ScoreDimension] FOREIGN KEY ([DimensionGUID]) REFERENCES [dbo].[ScoreDimension] ([DimensionGUID]); GO
ALTER TABLE [dbo].[ScoreHierarchy] ADD CONSTRAINT [DF__ScoreHiera__IsMR__09519DF0] DEFAULT ((0)) FOR [IsMR]; GO
ALTER TABLE [dbo].[ScoreHierarchy] ADD CONSTRAINT [DF_ScoreHierarchy_DateModified] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[ScoreHierarchy] ADD CONSTRAINT [DF__ScoreHier__Globa__177240EF] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[ScoreHierarchy] ADD CONSTRAINT [DF_ScoreHierarchy_PathAlias] DEFAULT ('') FOR [PathAlias]; GO
ALTER TABLE [dbo].[ScoreHierarchy] ADD CONSTRAINT [DF_ScoreHeirarchy_HeirarchyGUID] DEFAULT (newid()) FOR [HierarchyGUID]; GO
ALTER TABLE [dbo].[ScoreHierarchy] ADD CONSTRAINT [DF_ScoreHeirarchy_DimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreHierarchyAttributeLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreHierarchyAttributeLink] (
[HierarchyAttributeLinkGUID] uniqueidentifier NOT NULL,
[HierarchyGUID] uniqueidentifier NOT NULL,
[AttributeGUID] uniqueidentifier NOT NULL,
[DisplayAttributeGUID] uniqueidentifier NOT NULL,
[SortOrder] int NOT NULL,
[IsDependentOnChild] bit NOT NULL,
[DateModified] datetime NOT NULL,
[IsAttributeFiltered] bit NOT NULL,
[FilterAttributeGUID] uniqueidentifier NOT NULL,
[FilterString] nvarchar(250) NOT NULL,
PRIMARY KEY ([HierarchyAttributeLinkGUID])
);
GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [FK_ScoreHeirarchyAttributeLink_ScoreAttribute] FOREIGN KEY ([AttributeGUID]) REFERENCES [dbo].[ScoreAttribute] ([AttributeGUID]); GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [FK_ScoreHeirarchyAttributeLink_ScoreHeirarchy] FOREIGN KEY ([HierarchyGUID]) REFERENCES [dbo].[ScoreHierarchy] ([HierarchyGUID]); GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHierarchyAttributeLink_FilterAttributeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FilterAttributeGUID]; GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHierarchyAttributeLink_DateModified] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHierarchyAttributeLink_IsAttributeFiltered] DEFAULT ((0)) FOR [IsAttributeFiltered]; GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHierarchyAttributeLink_FilterString] DEFAULT ('') FOR [FilterString]; GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHeirarchyAttributeLink_ScoreHeirarchyAttributeLinkGUID] DEFAULT (newid()) FOR [HierarchyAttributeLinkGUID]; GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHeirarchyAttributeLink_HeirarchyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HierarchyGUID]; GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHierarchyAttributeLink_AttributeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AttributeGUID]; GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHierarchyAttributeLink_DisplayAttributeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DisplayAttributeGUID]; GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHeirarchyAttributeLink_SortOrder] DEFAULT ((1)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[ScoreHierarchyAttributeLink] ADD CONSTRAINT [DF_ScoreHierarchyAttributeLink_IsDependentOnChild] DEFAULT ((0)) FOR [IsDependentOnChild]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreKeyLinkSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreKeyLinkSetting] (
[ScoreKeyLinkSettingGuid] uniqueidentifier NOT NULL,
[KeyGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[IsUsed] bit NOT NULL,
[IsCustom] bit NOT NULL,
[IsMarkedForDeletion] bit NOT NULL,
PRIMARY KEY ([ScoreKeyLinkSettingGuid])
);
CREATE UNIQUE NONCLUSTERED INDEX [UQ_SCOREKEYLINKSETTING_DATATABLEGUIDKEYGUID] ON [dbo].[ScoreKeyLinkSetting] ([DataTableGUID], [KeyGUID]);
GO
ALTER TABLE [dbo].[ScoreKeyLinkSetting] ADD CONSTRAINT [FK__ScoreKeyL__DataT__5226C22E] FOREIGN KEY ([DataTableGUID]) REFERENCES [dbo].[ScoreDatatableSetting] ([DataTableGUID]); GO
ALTER TABLE [dbo].[ScoreKeyLinkSetting] ADD CONSTRAINT [DF__ScoreKeyL__IsMar__3BBB8B7E] DEFAULT ((0)) FOR [IsMarkedForDeletion]; GO
ALTER TABLE [dbo].[ScoreKeyLinkSetting] ADD CONSTRAINT [DF__ScoreKeyL__Score__51329DF5] DEFAULT (newid()) FOR [ScoreKeyLinkSettingGuid]; GO
ALTER TABLE [dbo].[ScoreKeyLinkSetting] ADD CONSTRAINT [DF__ScoreKeyL__IsUse__531AE667] DEFAULT ((0)) FOR [IsUsed]; GO
ALTER TABLE [dbo].[ScoreKeyLinkSetting] ADD CONSTRAINT [DF__ScoreKeyL__IsCus__55032ED9] DEFAULT ((0)) FOR [IsCustom]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreMeasure ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreMeasure] (
[MeasureGUID] uniqueidentifier NOT NULL,
[FriendlyName] nvarchar(64) NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[IsReadFromDB] bit NOT NULL,
[IsWrittenToDB] bit NOT NULL,
[SQLColumnName] nvarchar(64) NOT NULL,
[DisplayFormat] nvarchar(64) NOT NULL,
[HasMin] bit NOT NULL,
[Min] decimal NOT NULL,
[HasMax] bit NOT NULL,
[Max] decimal NOT NULL,
[HasMinLength] bit NOT NULL,
[MinLength] int NOT NULL,
[DefaultValue] nvarchar(64) NOT NULL,
[AggType] int NOT NULL,
[SpecialMeasureIndex] tinyint NOT NULL,
[SpecialFormulaSQLColumnName] nvarchar(64) NOT NULL,
[SpecialCommentSQLColumnName] nvarchar(64) NOT NULL,
[HasRestrictedValues] bit NOT NULL,
[RestrictedValues] nvarchar(max) NOT NULL,
[ObjectID] int NOT NULL,
[ColumnID] int NOT NULL,
[SchemaName] nvarchar(128) NOT NULL,
[ObjectName] nvarchar(128) NOT NULL,
[ColumnName] nvarchar(128) NOT NULL,
[ObjectType] int NOT NULL,
[MaxLength] smallint NOT NULL,
[IsComputed] bit NOT NULL,
[IsNullable] bit NOT NULL,
[Scale] tinyint NOT NULL,
[Precision] tinyint NOT NULL,
[IsIdentity] bit NOT NULL,
[ColumnTypeValue] tinyint NOT NULL,
[IdentityIncrement] int NOT NULL,
[IdentitySeed] int NOT NULL,
[DefaultValueDefinition] nvarchar(max) NOT NULL,
[IsPartOfUniqueIndex] bit NOT NULL,
[IsUniqueIndex] bit NOT NULL,
[IsPartOfPrimaryKey] bit NOT NULL,
[IsPrimaryKey] bit NOT NULL,
[ComputedValueDefinition] nvarchar(max) NOT NULL,
[IsForeignKeyed] bit NOT NULL,
[ForeignKeySchema] nvarchar(128) NOT NULL,
[ForeignKeyTable] nvarchar(128) NOT NULL,
[ForeignKeyColumn] nvarchar(128) NOT NULL,
[ForeignKeyOnDelete] nvarchar(128) NOT NULL,
[ModifiedAt] datetime NOT NULL,
[IsHidden] bit NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[IsRequired] bit NOT NULL,
[Description] nvarchar(1000) NOT NULL,
[DisplayFolder] nvarchar(50) NOT NULL,
PRIMARY KEY ([MeasureGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_ScoreMeasure_UniqueColumn] ON [dbo].[ScoreMeasure] ([DataTableGUID], [SQLColumnName]);
CREATE NONCLUSTERED INDEX [IX_MemberGUID] ON [dbo].[ScoreMeasure] ([MeasureGUID]) INCLUDE ([SQLColumnName]);
GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [FK_ScoreMeasure_ScoreDataTable] FOREIGN KEY ([DataTableGUID]) REFERENCES [dbo].[ScoreDataTable] ([DataTableGUID]); GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Objec__13A3AE7C] DEFAULT ((0)) FOR [ObjectID]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Colum__1497D2B5] DEFAULT ((0)) FOR [ColumnID]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Schem__158BF6EE] DEFAULT ('') FOR [SchemaName]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Objec__16801B27] DEFAULT ('') FOR [ObjectName]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Colum__17743F60] DEFAULT ('') FOR [ColumnName]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Objec__18686399] DEFAULT ((0)) FOR [ObjectType]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__MaxLe__195C87D2] DEFAULT ((0)) FOR [MaxLength]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsCom__1A50AC0B] DEFAULT ((0)) FOR [IsComputed]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsNul__1B44D044] DEFAULT ((0)) FOR [IsNullable]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Scale__1C38F47D] DEFAULT ((0)) FOR [Scale]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Preci__1D2D18B6] DEFAULT ((0)) FOR [Precision]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Descr__1948D9EE] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsIde__1E213CEF] DEFAULT ((0)) FOR [IsIdentity]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Colum__1F156128] DEFAULT ((0)) FOR [ColumnTypeValue]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Displ__1BD9C8F2] DEFAULT ('') FOR [DisplayFolder]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Ident__20098561] DEFAULT ((0)) FOR [IdentityIncrement]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Ident__20FDA99A] DEFAULT ((0)) FOR [IdentitySeed]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Defau__21F1CDD3] DEFAULT ('') FOR [DefaultValueDefinition]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsPar__22E5F20C] DEFAULT ((0)) FOR [IsPartOfUniqueIndex]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsUni__23DA1645] DEFAULT ((0)) FOR [IsUniqueIndex]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsPar__24CE3A7E] DEFAULT ((0)) FOR [IsPartOfPrimaryKey]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsPri__25C25EB7] DEFAULT ((0)) FOR [IsPrimaryKey]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Compu__26B682F0] DEFAULT ('') FOR [ComputedValueDefinition]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsFor__27AAA729] DEFAULT ((0)) FOR [IsForeignKeyed]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Forei__289ECB62] DEFAULT ('') FOR [ForeignKeySchema]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Forei__2992EF9B] DEFAULT ('') FOR [ForeignKeyTable]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Forei__2A8713D4] DEFAULT ('') FOR [ForeignKeyColumn]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Forei__2B7B380D] DEFAULT ('') FOR [ForeignKeyOnDelete]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Modif__042C60C2] DEFAULT (getdate()) FOR [ModifiedAt]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsHid__30F380B4] DEFAULT ((0)) FOR [IsHidden]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_SpecialMeasureIndex] DEFAULT ((0)) FOR [SpecialMeasureIndex]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_HasRestrictedValues] DEFAULT ((0)) FOR [HasRestrictedValues]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_SpecialFormulaSQLColumnName] DEFAULT ('') FOR [SpecialFormulaSQLColumnName]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_RestrictedValues] DEFAULT ('') FOR [RestrictedValues]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_SpecialCommentSQLColumnName] DEFAULT ('') FOR [SpecialCommentSQLColumnName]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_AggType] DEFAULT ((1)) FOR [AggType]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_MeasureGUID] DEFAULT (newid()) FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_DataTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_IsReadFromDB] DEFAULT ((1)) FOR [IsReadFromDB]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_IsWrittenToDB] DEFAULT ((1)) FOR [IsWrittenToDB]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__IsReq__5DB8706B] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_SQLColumnName] DEFAULT ('') FOR [SQLColumnName]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_Min] DEFAULT ((0)) FOR [Min]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_DisplayFormat] DEFAULT ('') FOR [DisplayFormat]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_Max] DEFAULT ((0)) FOR [Max]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_HasMin] DEFAULT ((0)) FOR [HasMin]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_HasMax] DEFAULT ((0)) FOR [HasMax]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_HasMinLength] DEFAULT ((0)) FOR [HasMinLength]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_MinLength] DEFAULT ((0)) FOR [MinLength]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF_ScoreMeasure_DefaultValue] DEFAULT ('') FOR [DefaultValue]; GO
ALTER TABLE [dbo].[ScoreMeasure] ADD CONSTRAINT [DF__ScoreMeas__Globa__73B5684A] DEFAULT ('') FOR [GlobalID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreMeasureLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreMeasureLink] (
[MeasureLinkID] int NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[ParentMeasureGUID] uniqueidentifier NOT NULL,
[MeasureLinkType] int NOT NULL,
PRIMARY KEY ([MeasureLinkID])
);
GO
ALTER TABLE [dbo].[ScoreMeasureLink] ADD CONSTRAINT [FK_ScoreMeasureLink_ScoreMeasure] FOREIGN KEY ([MeasureGUID]) REFERENCES [dbo].[ScoreMeasure] ([MeasureGUID]); GO
ALTER TABLE [dbo].[ScoreMeasureLink] ADD CONSTRAINT [FK_ScoreMeasureLink_ScoreMeasure1] FOREIGN KEY ([ParentMeasureGUID]) REFERENCES [dbo].[ScoreMeasure] ([MeasureGUID]); GO
ALTER TABLE [dbo].[ScoreMeasureLink] ADD CONSTRAINT [DF_ScoreMeasureLink_MeasureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[ScoreMeasureLink] ADD CONSTRAINT [DF_ScoreMeasureLink_MeasureLinkType] DEFAULT ((0)) FOR [MeasureLinkType]; GO
ALTER TABLE [dbo].[ScoreMeasureLink] ADD CONSTRAINT [DF_ScoreMeasureLink_ParentMeasureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentMeasureGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreMeasureLinkParameter ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreMeasureLinkParameter] (
[MeasureLinkID] int NOT NULL,
[Name] nvarchar(100) NOT NULL,
[Value] nvarchar(max) NOT NULL,
PRIMARY KEY ([MeasureLinkID], [Name])
);
GO
ALTER TABLE [dbo].[ScoreMeasureLinkParameter] ADD CONSTRAINT [FK_ScoreMeasureLinkParameter_ScoreMeasureLink] FOREIGN KEY ([MeasureLinkID]) REFERENCES [dbo].[ScoreMeasureLink] ([MeasureLinkID]); GO
ALTER TABLE [dbo].[ScoreMeasureLinkParameter] ADD CONSTRAINT [DF_ScoreMeasureLinkParameter_MeasureLinkID] DEFAULT ((0)) FOR [MeasureLinkID]; GO
ALTER TABLE [dbo].[ScoreMeasureLinkParameter] ADD CONSTRAINT [DF_ScoreMeasureLinkParameter_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[ScoreMeasureLinkParameter] ADD CONSTRAINT [DF_ScoreMeasureLinkParameter_Value] DEFAULT ('') FOR [Value]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreMeasureSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreMeasureSetting] (
[ScoreMeasureSettingGuid] uniqueidentifier NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[IsUsed] bit NOT NULL,
[IsCustom] bit NOT NULL,
[IsMarkedForDeletion] bit NOT NULL,
PRIMARY KEY ([ScoreMeasureSettingGuid])
);
CREATE UNIQUE NONCLUSTERED INDEX [UQ_SCOREMEASURESETTING_MEASUREGUID] ON [dbo].[ScoreMeasureSetting] ([MeasureGUID]);
GO
ALTER TABLE [dbo].[ScoreMeasureSetting] ADD CONSTRAINT [FK__ScoreMeas__DataT__58D3BFBD] FOREIGN KEY ([DataTableGUID]) REFERENCES [dbo].[ScoreDatatableSetting] ([DataTableGUID]); GO
ALTER TABLE [dbo].[ScoreMeasureSetting] ADD CONSTRAINT [DF__ScoreMeas__IsMar__3CAFAFB7] DEFAULT ((0)) FOR [IsMarkedForDeletion]; GO
ALTER TABLE [dbo].[ScoreMeasureSetting] ADD CONSTRAINT [DF__ScoreMeas__Score__57DF9B84] DEFAULT (newid()) FOR [ScoreMeasureSettingGuid]; GO
ALTER TABLE [dbo].[ScoreMeasureSetting] ADD CONSTRAINT [DF__ScoreMeas__IsUse__59C7E3F6] DEFAULT ((0)) FOR [IsUsed]; GO
ALTER TABLE [dbo].[ScoreMeasureSetting] ADD CONSTRAINT [DF__ScoreMeas__IsCus__5BB02C68] DEFAULT ((0)) FOR [IsCustom]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreModelLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreModelLink] (
[ModelLinkID] int NOT NULL,
[SourceModelGUID] uniqueidentifier NOT NULL,
[TargetModelGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ModelLinkID])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreTableEditorColumn ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreTableEditorColumn] (
[TableEditorColumnGUID] uniqueidentifier NOT NULL,
[TableEditorConfigGUID] uniqueidentifier NOT NULL,
[KeyGUID] uniqueidentifier NOT NULL,
[Type] int NOT NULL,
[PixelWidth] int NOT NULL,
[DisplayOrder] int NOT NULL,
[MetaData] xml NOT NULL,
[DisplayName] nvarchar(450) NOT NULL,
[DefaultMemberType] int NOT NULL,
[IsTextWrap] bit NOT NULL,
[IsSortedByDefault] bit NOT NULL,
[DefaultSortDirectionValue] int NOT NULL,
[DefaultSortIndex] int NOT NULL,
[TableEditorColumnGroupGUID] uniqueidentifier NOT NULL,
[IsRequired] bit NOT NULL,
[IsLocked] bit NOT NULL,
[IsNonFilterable] bit NOT NULL,
PRIMARY KEY ([TableEditorColumnGUID])
);
GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [FK_ScoreTableEditorColumn_ScoreTableEditorConfig] FOREIGN KEY ([TableEditorConfigGUID]) REFERENCES [dbo].[ScoreTableEditorConfig] ([TableEditorConfigGUID]); GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF__ScoreTabl__Table__7586401E] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TableEditorColumnGroupGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_IsTextWrap] DEFAULT ((0)) FOR [IsTextWrap]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF__ScoreTabl__IsReq__2B67F1EC] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_IsDefaultSorted] DEFAULT ((0)) FOR [IsSortedByDefault]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF__ScoreTabl__IsLoc__2D503A5E] DEFAULT ((0)) FOR [IsLocked]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_DefaultSortDirectionValue] DEFAULT ((0)) FOR [DefaultSortDirectionValue]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_DefaultSortIndex] DEFAULT ((0)) FOR [DefaultSortIndex]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF__ScoreTabl__IsNon__330913B4] DEFAULT ((0)) FOR [IsNonFilterable]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_DisplayName] DEFAULT ('') FOR [DisplayName]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_DefaultMemberType] DEFAULT ((0)) FOR [DefaultMemberType]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_TableEditorColumnGUID] DEFAULT (newid()) FOR [TableEditorColumnGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_TableEditorConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TableEditorConfigGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_KeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [KeyGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_IsMeasure] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_PixelWidth] DEFAULT ((150)) FOR [PixelWidth]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_DisplayOrder] DEFAULT ((-1)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumn] ADD CONSTRAINT [DF_ScoreTableEditorColumn_MetaData] DEFAULT ('') FOR [MetaData]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreTableEditorColumnGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreTableEditorColumnGroup] (
[TableEditorColumnGroupGUID] uniqueidentifier NOT NULL,
[TableEditorConfigGUID] uniqueidentifier NOT NULL,
[DisplayColumnGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(100) NOT NULL,
[GroupType] int NOT NULL,
[IsActive] bit NOT NULL,
PRIMARY KEY ([TableEditorColumnGroupGUID])
);
GO
ALTER TABLE [dbo].[ScoreTableEditorColumnGroup] ADD CONSTRAINT [FK__ScoreTabl__Table__4DCD547F] FOREIGN KEY ([TableEditorConfigGUID]) REFERENCES [dbo].[ScoreTableEditorConfig] ([TableEditorConfigGUID]); GO
ALTER TABLE [dbo].[ScoreTableEditorColumnGroup] ADD CONSTRAINT [DF__ScoreTabl__Table__4CD93046] DEFAULT (newid()) FOR [TableEditorColumnGroupGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumnGroup] ADD CONSTRAINT [DF__ScoreTabl__Displ__4EC178B8] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DisplayColumnGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumnGroup] ADD CONSTRAINT [DF__ScoreTable__Name__4FB59CF1] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumnGroup] ADD CONSTRAINT [DF__ScoreTabl__Group__50A9C12A] DEFAULT ((0)) FOR [GroupType]; GO
ALTER TABLE [dbo].[ScoreTableEditorColumnGroup] ADD CONSTRAINT [DF__ScoreTabl__IsAct__519DE563] DEFAULT ((0)) FOR [IsActive]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreTableEditorConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreTableEditorConfig] (
[TableEditorConfigGUID] uniqueidentifier NOT NULL,
[DataSourceGUID] uniqueidentifier NOT NULL,
[FriendlyName] nvarchar(64) NOT NULL,
[MaxRecords] int NOT NULL,
[DefaultSortColumnGUID] uniqueidentifier NOT NULL,
[DefaultSortDirection] bit NOT NULL,
[IsShowingExpanded] bit NOT NULL,
[IsMeasureEditOnly] bit NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[IsTemplateBased] bit NOT NULL,
[FixedRowHeight] int NOT NULL,
[IsDeleteAllowed] bit NOT NULL,
[RowNumberColumnGUID] uniqueidentifier NOT NULL,
[CreatedDate] datetime NOT NULL,
[CreatedBy] uniqueidentifier NOT NULL,
[LastUsedDate] datetime NOT NULL,
[IsPromptForFilter] bit NOT NULL,
[IsAutoAddRow] bit NOT NULL,
[IsPlanFKFilterEnabled] bit NOT NULL,
[IsForModel] bit NOT NULL,
[IsSaveCommentsRequired] bit NOT NULL,
[VarianceMode] int NOT NULL,
[IsSensitivityRiskEnabled] bit NOT NULL,
[IsReadOnly] bit NOT NULL,
[IsBaselineLocked] bit NOT NULL,
[IsAddAllowed] bit NOT NULL,
[IsScoreFillinAdvancedMode] bit NOT NULL,
[OnSaveCustomScriptGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([TableEditorConfigGUID])
);
GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsScoreFillinAdvancedMode] DEFAULT ((0)) FOR [IsScoreFillinAdvancedMode]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_CreatedBy] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CreatedBy]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsSensitivityRiskEnabled] DEFAULT ((0)) FOR [IsSensitivityRiskEnabled]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_TableEditorConfigGUID] DEFAULT (newid()) FOR [TableEditorConfigGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_DataSourceGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataSourceGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_Name] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_MaxRecords] DEFAULT ((500)) FOR [MaxRecords]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_DefaultSortKeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultSortColumnGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_DefaultSortDirection] DEFAULT ((0)) FOR [DefaultSortDirection]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsShowingExpanded] DEFAULT ((0)) FOR [IsShowingExpanded]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsMeasureEditOnly] DEFAULT ((0)) FOR [IsMeasureEditOnly]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_FolderGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsTemplateBased] DEFAULT ((0)) FOR [IsTemplateBased]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_FixedRowHeight] DEFAULT ((50)) FOR [FixedRowHeight]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsDeleteAllowed] DEFAULT ((1)) FOR [IsDeleteAllowed]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsReadOnly] DEFAULT ((0)) FOR [IsReadOnly]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF__ScoreTabl__Varia__231800A4] DEFAULT ((0)) FOR [VarianceMode]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsAutoAddRow] DEFAULT ((0)) FOR [IsAutoAddRow]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_OnSaveCustomScriptGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OnSaveCustomScriptGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsForModel] DEFAULT ((0)) FOR [IsForModel]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_CreatedDate] DEFAULT (getdate()) FOR [CreatedDate]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_LastUsedDate] DEFAULT (getdate()) FOR [LastUsedDate]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsPromptForFilter] DEFAULT ((0)) FOR [IsPromptForFilter]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF__ScoreTabl__IsBas__66990249] DEFAULT ((0)) FOR [IsBaselineLocked]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF__ScoreTabl__IsSav__686AA574] DEFAULT ((0)) FOR [IsSaveCommentsRequired]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsAddAllowed] DEFAULT ((1)) FOR [IsAddAllowed]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_RowNumberColumnGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RowNumberColumnGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorConfig] ADD CONSTRAINT [DF_ScoreTableEditorConfig_IsPlanFKFilterEnabled] DEFAULT ((1)) FOR [IsPlanFKFilterEnabled]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreTableEditorFilter ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreTableEditorFilter] (
[TableEditorFilterGUID] uniqueidentifier NOT NULL,
[TableEditorConfigGUID] uniqueidentifier NOT NULL,
[KeyGUID] uniqueidentifier NOT NULL,
[HierarchyPath] nvarchar(4000) NOT NULL,
[FriendlyName] nvarchar(450) NOT NULL,
[FilterType] int NOT NULL,
[MetaData] nvarchar(max) NOT NULL,
PRIMARY KEY ([TableEditorFilterGUID])
);
GO
ALTER TABLE [dbo].[ScoreTableEditorFilter] ADD CONSTRAINT [FK_ScoreTableEditorFilter_ScoreTableEditorConfig] FOREIGN KEY ([TableEditorConfigGUID]) REFERENCES [dbo].[ScoreTableEditorConfig] ([TableEditorConfigGUID]); GO
ALTER TABLE [dbo].[ScoreTableEditorFilter] ADD CONSTRAINT [DF_ScoreTableEditorFilter_TableEditorFilterGUID] DEFAULT (newid()) FOR [TableEditorFilterGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorFilter] ADD CONSTRAINT [DF_ScoreTableEditorFilter_TableEditorConfigGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TableEditorConfigGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorFilter] ADD CONSTRAINT [DF_ScoreTableEditorFilter_KeyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [KeyGUID]; GO
ALTER TABLE [dbo].[ScoreTableEditorFilter] ADD CONSTRAINT [DF_ScoreTableEditorFilter_HierarchyPath] DEFAULT ('') FOR [HierarchyPath]; GO
ALTER TABLE [dbo].[ScoreTableEditorFilter] ADD CONSTRAINT [DF_ScoreTableEditorFilter_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[ScoreTableEditorFilter] ADD CONSTRAINT [DF_ScoreTableEditorFilter_FilterType] DEFAULT ((0)) FOR [FilterType]; GO
ALTER TABLE [dbo].[ScoreTableEditorFilter] ADD CONSTRAINT [DF_ScoreTableEditorFilter_MetaData] DEFAULT ('') FOR [MetaData]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ScoreTupleDataHistoryChangeItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[ScoreTupleDataHistoryChangeItem] (
[RowID] int NOT NULL,
[ChangedRowID] bigint NOT NULL,
[DataTableGUID] uniqueidentifier NOT NULL,
[WorksheetName] nvarchar(max) NOT NULL,
[CellAddress] nvarchar(100) NOT NULL,
[MeasureGUID] uniqueidentifier NOT NULL,
[TupleString] nvarchar(max) NOT NULL,
[BeforeValueString] nvarchar(max) NOT NULL,
[BeforeFormula] nvarchar(max) NOT NULL,
[BeforeValueIsNumeric] bit NOT NULL,
[AfterValueString] nvarchar(max) NOT NULL,
[AfterFormula] nvarchar(max) NOT NULL,
[AfterValueIsNumeric] bit NOT NULL,
[IsUserSet] bit NOT NULL,
[IdentityGUID] uniqueidentifier NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([RowID])
);
CREATE CLUSTERED INDEX [IX_ScoreTupleDataHistoryChangeItem] ON [dbo].[ScoreTupleDataHistoryChangeItem] ([HistoryItemGUID]);
GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_DataTableGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DataTableGUID]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_IdentityGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [IdentityGUID]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_HistoryItemGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_MeasureGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MeasureGUID]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_WorksheetName] DEFAULT ('') FOR [WorksheetName]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_CellAddress] DEFAULT ('') FOR [CellAddress]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_TupleString] DEFAULT ('') FOR [TupleString]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_BeforeValueString] DEFAULT ('') FOR [BeforeValueString]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_BeforeFormula] DEFAULT ('') FOR [BeforeFormula]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_BeforeValueIsNumeric] DEFAULT ((0)) FOR [BeforeValueIsNumeric]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_AfterValueString] DEFAULT ('') FOR [AfterValueString]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_AfterFormula] DEFAULT ('') FOR [AfterFormula]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_AfterValueIsNumeric] DEFAULT ((0)) FOR [AfterValueIsNumeric]; GO
ALTER TABLE [dbo].[ScoreTupleDataHistoryChangeItem] ADD CONSTRAINT [DF_ScoreTupleDataHistoryChangeItem_IsUserSet] DEFAULT ((0)) FOR [IsUserSet]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SecureList ------------------
---------------------------------------------
CREATE TABLE [dbo].[SecureList] (
[ListGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(128) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[DefaultListMemberGUID] uniqueidentifier NOT NULL,
[DisplayOrder] int NOT NULL,
[AggregationType] int NOT NULL,
[OriginalGUID] uniqueidentifier NOT NULL,
[ListType] int NOT NULL,
[DimensionType] int NOT NULL,
[Version] timestamp NOT NULL,
[DefaultListMemberID] nvarchar(450) NOT NULL,
[IsSecured] bit NOT NULL,
[UnknownMemberBehavior] int NOT NULL,
[IsPlaceholder] bit NOT NULL,
[FillInDimensionGUID] uniqueidentifier NOT NULL,
[PermissionSetID] smallint NOT NULL,
[IsSetupLocked] bit NOT NULL,
[IsSecurityHackEnabled] bit NOT NULL,
[IsEditLocked] bit NOT NULL,
[SyncedScoreDimensionGUID] uniqueidentifier NULL,
[SyncedScoreNameAttributeGUID] uniqueidentifier NULL,
[ConvertedScoreDimensionGUID] uniqueidentifier NULL,
[SyncedScoreOrderByAttributeGUID] uniqueidentifier NULL,
PRIMARY KEY ([ListGUID])
);
GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_PermissionSetID] DEFAULT ((0)) FOR [PermissionSetID]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_IsSetupLocked] DEFAULT ((0)) FOR [IsSetupLocked]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_ConvertedScoreDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ConvertedScoreDimensionGUID]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_DPList_ListGUID] DEFAULT (newid()) FOR [ListGUID]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_DPList_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_DPList_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_DPList_FolderGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_DPList_DEFAULTLISTITEMGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultListMemberGUID]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_DPList_DISPLAYORDER_1] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_IsAggregatable] DEFAULT ((1)) FOR [AggregationType]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_ORIGINALGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [OriginalGUID]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_LISTOWNERTYPE] DEFAULT ((0)) FOR [ListType]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_LISTTYPE] DEFAULT ((0)) FOR [DimensionType]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_DEFAULTLISTMEMBERID] DEFAULT ('') FOR [DefaultListMemberID]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_IsSecured] DEFAULT ((0)) FOR [IsSecured]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_UNKNOWNMEMBERBEHAVIOR] DEFAULT ((0)) FOR [UnknownMemberBehavior]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_IsPlaceholder] DEFAULT ((0)) FOR [IsPlaceholder]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_FillInDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FillInDimensionGUID]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_IsEditLocked] DEFAULT ((0)) FOR [IsEditLocked]; GO
ALTER TABLE [dbo].[SecureList] ADD CONSTRAINT [DF_SecureList_IsSecurityHackEnabled] DEFAULT ((0)) FOR [IsSecurityHackEnabled]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SecureListInsertionPoint ------------------
---------------------------------------------
CREATE TABLE [dbo].[SecureListInsertionPoint] (
[ListInsertionPointGUID] uniqueidentifier NOT NULL,
[ListGUID] uniqueidentifier NOT NULL,
[ParentListMemberGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(450) NOT NULL,
PRIMARY KEY ([ListInsertionPointGUID])
);
GO
ALTER TABLE [dbo].[SecureListInsertionPoint] ADD CONSTRAINT [FK_SecureListInsertionPoint_SecureList] FOREIGN KEY ([ListGUID]) REFERENCES [dbo].[SecureList] ([ListGUID]); GO
ALTER TABLE [dbo].[SecureListInsertionPoint] ADD CONSTRAINT [DF_SecureListInsertionPoint_LISTINSERTIONPOINTGUID] DEFAULT (newid()) FOR [ListInsertionPointGUID]; GO
ALTER TABLE [dbo].[SecureListInsertionPoint] ADD CONSTRAINT [DF_SecureListInsertionPoint_LISTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ListGUID]; GO
ALTER TABLE [dbo].[SecureListInsertionPoint] ADD CONSTRAINT [DF_SecureListInsertionPoint_PARENTLISTMEMBERGUID_1] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentListMemberGUID]; GO
ALTER TABLE [dbo].[SecureListInsertionPoint] ADD CONSTRAINT [DF_SecureListInsertionPoint_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SecureListInsertionPoint] ADD CONSTRAINT [DF_SecureListInsertionPoint_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SecureListLevel ------------------
---------------------------------------------
CREATE TABLE [dbo].[SecureListLevel] (
[ListLevelGUID] uniqueidentifier NOT NULL,
[ListGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[LevelIndex] int NOT NULL,
[LevelType] int NOT NULL,
[Version] timestamp NOT NULL,
PRIMARY KEY ([ListLevelGUID])
);
CREATE CLUSTERED INDEX [IX_SecureListLevel] ON [dbo].[SecureListLevel] ([ListGUID], [LevelIndex]);
GO
ALTER TABLE [dbo].[SecureListLevel] ADD CONSTRAINT [FK_SecureListLevel_SecureList] FOREIGN KEY ([ListGUID]) REFERENCES [dbo].[SecureList] ([ListGUID]); GO
ALTER TABLE [dbo].[SecureListLevel] ADD CONSTRAINT [DF_Table_1_SECURELISTLEVEL] DEFAULT (newid()) FOR [ListLevelGUID]; GO
ALTER TABLE [dbo].[SecureListLevel] ADD CONSTRAINT [DF_SecureListLevel_SECURELISTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ListGUID]; GO
ALTER TABLE [dbo].[SecureListLevel] ADD CONSTRAINT [DF_SecureListLevel_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SecureListLevel] ADD CONSTRAINT [DF_SecureListLevel_INDEX] DEFAULT ((0)) FOR [LevelIndex]; GO
ALTER TABLE [dbo].[SecureListLevel] ADD CONSTRAINT [DF_SecureListLevel_LEVELTYPE] DEFAULT ((0)) FOR [LevelType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SecureListMember ------------------
---------------------------------------------
CREATE TABLE [dbo].[SecureListMember] (
[ListMemberGUID] uniqueidentifier NOT NULL,
[ListGUID] uniqueidentifier NOT NULL,
[ParentListMemberGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(128) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[FullPath] nvarchar(4000) NOT NULL,
[DisplayOrder] int NOT NULL,
[OutlineLevel] int NOT NULL,
[OperatorType] int NOT NULL,
[Version] timestamp NOT NULL,
[IsIDLocked] bit NOT NULL,
[IsNameLocked] bit NOT NULL,
[IsDeleteLocked] bit NOT NULL,
[IsNewChildLocked] bit NOT NULL,
[IsParentAssociationLocked] bit NOT NULL,
[IsEditAttributeLocked] bit NOT NULL,
[ListMemberID] nvarchar(400) NOT NULL,
[SortOrderFullPath] nvarchar(4000) NOT NULL,
[FillInConfigGUID] uniqueidentifier NOT NULL,
[FillInDimensionGUID] uniqueidentifier NULL,
[DateCreated] datetime NOT NULL,
[DateModified] datetime NOT NULL,
[LootIDOverride] nvarchar(128) NULL,
[LootID] nvarchar(128) NULL,
PRIMARY KEY ([ListMemberGUID])
);
CREATE CLUSTERED INDEX [IX_ListMember_ListGUID] ON [dbo].[SecureListMember] ([ListGUID]);
CREATE NONCLUSTERED INDEX [IX_ListMember_ParentGUID] ON [dbo].[SecureListMember] ([ParentListMemberGUID]);
CREATE NONCLUSTERED INDEX [IX_ListMember_DisplayOrder] ON [dbo].[SecureListMember] ([DisplayOrder]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_ListMember_UniqueDK] ON [dbo].[SecureListMember] ([ListGUID], [ListMemberID]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_ListMember_Unique] ON [dbo].[SecureListMember] ([ListGUID], [ParentListMemberGUID], [Name]);
GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_DateModified] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SCListItem_PARENTLISTITEMGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentListMemberGUID]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SCListItem_LISTITEMGUID] DEFAULT (newid()) FOR [ListMemberGUID]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SCListItem_LISTGUID] DEFAULT (newid()) FOR [ListGUID]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SCListItem_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SCListItem_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SCListItem_FULLPATH] DEFAULT ('') FOR [FullPath]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SCListItem_DISPLAYORDER] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_OUTLINELEVEL] DEFAULT ((0)) FOR [OutlineLevel]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_OPERATORTYPE] DEFAULT ((0)) FOR [OperatorType]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_ISIDLOCKED] DEFAULT ((0)) FOR [IsIDLocked]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_ISNAMELOCKED] DEFAULT ((0)) FOR [IsNameLocked]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_ISDELETELOCKED] DEFAULT ((0)) FOR [IsDeleteLocked]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_ISNEWCHILDLOCKED] DEFAULT ((0)) FOR [IsNewChildLocked]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_ISPARENTLOCKED] DEFAULT ((0)) FOR [IsParentAssociationLocked]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_ISEDITATTRIBUTELOCKED] DEFAULT ((0)) FOR [IsEditAttributeLocked]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_LISTMEMBERID] DEFAULT ('') FOR [ListMemberID]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_DISPLAYORDERFULLPATH] DEFAULT ('') FOR [SortOrderFullPath]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_FillInDimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FillInConfigGUID]; GO
ALTER TABLE [dbo].[SecureListMember] ADD CONSTRAINT [DF_SecureListMember_DateCreated] DEFAULT (getdate()) FOR [DateCreated]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SecureListMemberValue ------------------
---------------------------------------------
CREATE TABLE [dbo].[SecureListMemberValue] (
[ListMemberValueGUID] uniqueidentifier NOT NULL,
[ListMemberGUID] uniqueidentifier NOT NULL,
[ListGUID] uniqueidentifier NOT NULL,
[Type] int NOT NULL,
[ValueFloat] float NOT NULL,
[ValueText] nvarchar(1000) NOT NULL,
[ValueIndex] int NOT NULL,
[DateCreated] datetime NOT NULL,
[DateModified] datetime NOT NULL,
[Version] timestamp NOT NULL
);
CREATE CLUSTERED INDEX [IX_ListMemberValue_ListGUID] ON [dbo].[SecureListMemberValue] ([ListGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [PK_ListMemberValue] ON [dbo].[SecureListMemberValue] ([ListMemberValueGUID]);
CREATE NONCLUSTERED INDEX [IX_ListMemberValue_ListMemberGUID] ON [dbo].[SecureListMemberValue] ([ListMemberGUID]);
CREATE NONCLUSTERED INDEX [IX_ListMemberValue_ValueIndex] ON [dbo].[SecureListMemberValue] ([ValueIndex]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_SecureListMemberValue] ON [dbo].[SecureListMemberValue] ([ListMemberGUID], [ValueIndex]);
GO
ALTER TABLE [dbo].[SecureListMemberValue] ADD CONSTRAINT [FK_SecureListMemberValue_SecureListMember] FOREIGN KEY ([ListMemberGUID]) REFERENCES [dbo].[SecureListMember] ([ListMemberGUID]); GO
ALTER TABLE [dbo].[SecureListMemberValue] ADD CONSTRAINT [DF_SCListItemValue_VALUEFLOAT] DEFAULT ((0)) FOR [ValueFloat]; GO
ALTER TABLE [dbo].[SecureListMemberValue] ADD CONSTRAINT [DF_SecureListMemberValue_DateCreated] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[SecureListMemberValue] ADD CONSTRAINT [DF_SecureListMemberValue_DateModified] DEFAULT (getdate()) FOR [DateModified]; GO
ALTER TABLE [dbo].[SecureListMemberValue] ADD CONSTRAINT [DF_SecureListMemberValue_INDEX] DEFAULT ((0)) FOR [ValueIndex]; GO
ALTER TABLE [dbo].[SecureListMemberValue] ADD CONSTRAINT [DF_SCListItemValue_VALUETEXT] DEFAULT ('') FOR [ValueText]; GO
ALTER TABLE [dbo].[SecureListMemberValue] ADD CONSTRAINT [DF_SCListItemValue_LISTITEMVALUEGUID] DEFAULT (newid()) FOR [ListMemberValueGUID]; GO
ALTER TABLE [dbo].[SecureListMemberValue] ADD CONSTRAINT [DF_SCListItemValue_LISTITEMGUID] DEFAULT (newid()) FOR [ListMemberGUID]; GO
ALTER TABLE [dbo].[SecureListMemberValue] ADD CONSTRAINT [DF_SCListItemValue_LISTGUID] DEFAULT (newid()) FOR [ListGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SecureListProperty ------------------
---------------------------------------------
CREATE TABLE [dbo].[SecureListProperty] (
[ListPropertyGUID] uniqueidentifier NOT NULL,
[ListGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[PropertyIndex] int NOT NULL,
[PropertyType] int NOT NULL,
[Version] timestamp NOT NULL,
PRIMARY KEY ([ListPropertyGUID])
);
GO
ALTER TABLE [dbo].[SecureListProperty] ADD CONSTRAINT [FK_SecureListProperty_SecureList] FOREIGN KEY ([ListGUID]) REFERENCES [dbo].[SecureList] ([ListGUID]); GO
ALTER TABLE [dbo].[SecureListProperty] ADD CONSTRAINT [DF_SecureListProperty_SECURELISTPROPERTYGUID] DEFAULT (newid()) FOR [ListPropertyGUID]; GO
ALTER TABLE [dbo].[SecureListProperty] ADD CONSTRAINT [DF_SecureListProperty_SECURELISTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ListGUID]; GO
ALTER TABLE [dbo].[SecureListProperty] ADD CONSTRAINT [DF_SecureListProperty_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SecureListProperty] ADD CONSTRAINT [DF_SecureListProperty_INDEX] DEFAULT ((0)) FOR [PropertyIndex]; GO
ALTER TABLE [dbo].[SecureListProperty] ADD CONSTRAINT [DF_SecureListProperty_PROPERTYTYPE] DEFAULT ((0)) FOR [PropertyType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SecurityHistoryItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[SecurityHistoryItem] (
[HistoryItemGUID] uniqueidentifier NOT NULL,
[UserName] nvarchar(64) NOT NULL,
[Type] nvarchar(64) NOT NULL,
[Change] nvarchar(64) NOT NULL,
[Field1] nvarchar(64) NOT NULL,
[Field2] nvarchar(64) NOT NULL,
[BeforeValue] nvarchar(1024) NOT NULL,
[AfterValue] nvarchar(1024) NOT NULL,
[TimeStampUtc] datetime NOT NULL,
PRIMARY KEY ([HistoryItemGUID])
);
GO
ALTER TABLE [dbo].[SecurityHistoryItem] ADD CONSTRAINT [DF__SecurityH__After__00A05511] DEFAULT ('') FOR [AfterValue]; GO
ALTER TABLE [dbo].[SecurityHistoryItem] ADD CONSTRAINT [DF__SecurityH__TimeS__52425D49] DEFAULT (getutcdate()) FOR [TimeStampUtc]; GO
ALTER TABLE [dbo].[SecurityHistoryItem] ADD CONSTRAINT [DF__SecurityH__Histo__78FF3349] DEFAULT (newid()) FOR [HistoryItemGUID]; GO
ALTER TABLE [dbo].[SecurityHistoryItem] ADD CONSTRAINT [DF__SecurityH__UserN__7AE77BBB] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[SecurityHistoryItem] ADD CONSTRAINT [DF__SecurityHi__Type__7BDB9FF4] DEFAULT ('') FOR [Type]; GO
ALTER TABLE [dbo].[SecurityHistoryItem] ADD CONSTRAINT [DF__SecurityH__Chang__7CCFC42D] DEFAULT ('') FOR [Change]; GO
ALTER TABLE [dbo].[SecurityHistoryItem] ADD CONSTRAINT [DF__SecurityH__Field__7DC3E866] DEFAULT ('') FOR [Field1]; GO
ALTER TABLE [dbo].[SecurityHistoryItem] ADD CONSTRAINT [DF__SecurityH__Field__7EB80C9F] DEFAULT ('') FOR [Field2]; GO
ALTER TABLE [dbo].[SecurityHistoryItem] ADD CONSTRAINT [DF__SecurityH__Befor__7FAC30D8] DEFAULT ('') FOR [BeforeValue]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SisenseDataMart ------------------
---------------------------------------------
CREATE TABLE [dbo].[SisenseDataMart] (
[SisenseDataMartGUID] uniqueidentifier NOT NULL,
[DataMartName] nvarchar(200) NOT NULL,
[StrataId] nvarchar(5) NOT NULL,
[FactTableName] nvarchar(100) NOT NULL,
[DataTableGuid] uniqueidentifier NOT NULL,
[QueryTag] nvarchar(50) NOT NULL,
[FactTablePrefix] nvarchar(100) NOT NULL,
[SisenseFactTable] nvarchar(200) NOT NULL,
[IsUsingDepartmentSecurity] bit NOT NULL,
[IsAppendedOnly] bit NOT NULL,
[WarehouseSize] nvarchar(200) NOT NULL,
[IsUsingReportingSchema] bit NOT NULL,
PRIMARY KEY ([SisenseDataMartGUID])
);
GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [FK__SisenseDa__DataT__14C51914] FOREIGN KEY ([DataTableGuid]) REFERENCES [dbo].[ScoreDataTable] ([DataTableGUID]); GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__Sisen__0518C130] DEFAULT ('') FOR [SisenseFactTable]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__Sisen__0F0C3FBE] DEFAULT (newid()) FOR [SisenseDataMartGUID]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__DataM__100063F7] DEFAULT ('') FOR [DataMartName]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__Strat__10F48830] DEFAULT ('') FOR [StrataId]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__FactT__11E8AC69] DEFAULT ('') FOR [FactTableName]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__Query__12DCD0A2] DEFAULT ('') FOR [QueryTag]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__FactT__13D0F4DB] DEFAULT ('') FOR [FactTablePrefix]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__Wareh__261A8D9F] DEFAULT ('REPORT_XS_WH') FOR [WarehouseSize]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__IsApp__286CEA65] DEFAULT ((0)) FOR [IsAppendedOnly]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__IsUsi__40103523] DEFAULT ((0)) FOR [IsUsingReportingSchema]; GO
ALTER TABLE [dbo].[SisenseDataMart] ADD CONSTRAINT [DF__SisenseDa__IsUsi__6EDF674E] DEFAULT ((0)) FOR [IsUsingDepartmentSecurity]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SnapinActionConfig ------------------
---------------------------------------------
CREATE TABLE [dbo].[SnapinActionConfig] (
[SnapinActionConfigGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(50) NOT NULL,
PRIMARY KEY ([SnapinActionConfigGUID])
);
GO
ALTER TABLE [dbo].[SnapinActionConfig] ADD CONSTRAINT [DF_SnapinActionConfig_SnapinActionGUID] DEFAULT (newid()) FOR [SnapinActionConfigGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SnapinActionItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[SnapinActionItem] (
[SnapinActionItemGUID] uniqueidentifier NOT NULL,
[SnapinActionConfigGUID] uniqueidentifier NOT NULL,
[SnapinGUID] uniqueidentifier NOT NULL,
[Description] nvarchar(max) NOT NULL,
[DisplayOrder] smallint NOT NULL,
[Mode] tinyint NOT NULL,
PRIMARY KEY ([SnapinActionItemGUID])
);
GO
ALTER TABLE [dbo].[SnapinActionItem] ADD CONSTRAINT [FK_SnapinActionItem_SnapinActionConfig] FOREIGN KEY ([SnapinActionConfigGUID]) REFERENCES [dbo].[SnapinActionConfig] ([SnapinActionConfigGUID]); GO
ALTER TABLE [dbo].[SnapinActionItem] ADD CONSTRAINT [DF_Table_1_SnapinActionStripItemGUID] DEFAULT (newid()) FOR [SnapinActionItemGUID]; GO
ALTER TABLE [dbo].[SnapinActionItem] ADD CONSTRAINT [DF_SnapinActionItem_Description] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[SnapinActionItem] ADD CONSTRAINT [DF_SnapinActionItem_Mode] DEFAULT ((0)) FOR [Mode]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SnapinActionItemFramework ------------------
---------------------------------------------
CREATE TABLE [dbo].[SnapinActionItemFramework] (
[SnapinActionItemGUID] uniqueidentifier NOT NULL,
[FrameworkID] tinyint NOT NULL
);
GO
ALTER TABLE [dbo].[SnapinActionItemFramework] ADD CONSTRAINT [FK_SnapinActionItemFramework_SnapinActionItem] FOREIGN KEY ([SnapinActionItemGUID]) REFERENCES [dbo].[SnapinActionItem] ([SnapinActionItemGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.SnapinActionItemTag ------------------
---------------------------------------------
CREATE TABLE [dbo].[SnapinActionItemTag] (
[SnapinActionItemGUID] uniqueidentifier NOT NULL,
[TagGUID] uniqueidentifier NOT NULL
);
GO
ALTER TABLE [dbo].[SnapinActionItemTag] ADD CONSTRAINT [FK_SnapinActionItemTag_SnapinActionItem] FOREIGN KEY ([SnapinActionItemGUID]) REFERENCES [dbo].[SnapinActionItem] ([SnapinActionItemGUID]); GO
---------------------------------------------
---------------------------------------------
-- dbo.StandardCodesDimensionUpgradeRequest ------------------
---------------------------------------------
CREATE TABLE [dbo].[StandardCodesDimensionUpgradeRequest] (
[StandardCodesDimensionUpgradeRequestGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[StandardCodesDimensionName] nvarchar(400) NOT NULL,
PRIMARY KEY ([StandardCodesDimensionUpgradeRequestGUID])
);
GO
ALTER TABLE [dbo].[StandardCodesDimensionUpgradeRequest] ADD CONSTRAINT [DF__StandardC__Dimen__1523434F] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[StandardCodesDimensionUpgradeRequest] ADD CONSTRAINT [DF__StandardC__Stand__142F1F16] DEFAULT (newid()) FOR [StandardCodesDimensionUpgradeRequestGUID]; GO
ALTER TABLE [dbo].[StandardCodesDimensionUpgradeRequest] ADD CONSTRAINT [DF__StandardC__Stand__16176788] DEFAULT ('') FOR [StandardCodesDimensionName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.StandardCodesUpdateRulesRequest ------------------
---------------------------------------------
CREATE TABLE [dbo].[StandardCodesUpdateRulesRequest] (
[StandardCodesDimensionUpgradeRequestGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([StandardCodesDimensionUpgradeRequestGUID])
);
GO
ALTER TABLE [dbo].[StandardCodesUpdateRulesRequest] ADD CONSTRAINT [DF__StandardC__Dimen__76A9DAF1] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
ALTER TABLE [dbo].[StandardCodesUpdateRulesRequest] ADD CONSTRAINT [DF__StandardC__Stand__75B5B6B8] DEFAULT (newid()) FOR [StandardCodesDimensionUpgradeRequestGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.StandardDefinitionMapping ------------------
---------------------------------------------
CREATE TABLE [dbo].[StandardDefinitionMapping] (
[MappingId] int NOT NULL,
[StandardDefinitionGUID] uniqueidentifier NOT NULL,
[StandardDefinitionType] nvarchar(200) NOT NULL,
[MappingMemberValue] nvarchar(max) NULL,
PRIMARY KEY ([MappingId])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.Survey ------------------
---------------------------------------------
CREATE TABLE [dbo].[Survey] (
[SurveyGUID] uniqueidentifier NOT NULL,
[FriendlyName] nvarchar(128) NOT NULL,
[Description] varchar(400) NOT NULL,
PRIMARY KEY ([SurveyGUID])
);
GO
ALTER TABLE [dbo].[Survey] ADD CONSTRAINT [DF_Survey_SurveyGUID] DEFAULT (newid()) FOR [SurveyGUID]; GO
ALTER TABLE [dbo].[Survey] ADD CONSTRAINT [DF_Survey_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SurveyItem ------------------
---------------------------------------------
CREATE TABLE [dbo].[SurveyItem] (
[SurveyItemGUID] uniqueidentifier NOT NULL,
[SurveyGUID] uniqueidentifier NOT NULL,
[FriendlyName] nvarchar(128) NOT NULL,
[SurveyItemType] smallint NOT NULL,
[ContextXML] varchar(max) NOT NULL,
[SurveyText] nvarchar(400) NOT NULL,
[Footer] nvarchar(400) NOT NULL,
[DisplayOrder] smallint NOT NULL,
[IsRequired] bit NOT NULL,
PRIMARY KEY ([SurveyItemGUID])
);
GO
ALTER TABLE [dbo].[SurveyItem] ADD CONSTRAINT [DF_SurveyItem_Isrequired] DEFAULT ((0)) FOR [IsRequired]; GO
ALTER TABLE [dbo].[SurveyItem] ADD CONSTRAINT [DF_SurveyQuestion_SurveyQuestionGUID] DEFAULT (newid()) FOR [SurveyItemGUID]; GO
ALTER TABLE [dbo].[SurveyItem] ADD CONSTRAINT [DF_SurveyItem_SurveyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SurveyGUID]; GO
ALTER TABLE [dbo].[SurveyItem] ADD CONSTRAINT [DF_SurveyQuestion_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[SurveyItem] ADD CONSTRAINT [DF_SurveyQuestion_SurveyQuestionType] DEFAULT ((0)) FOR [SurveyItemType]; GO
ALTER TABLE [dbo].[SurveyItem] ADD CONSTRAINT [DF_SurveyQuestion_ContextXML] DEFAULT ('') FOR [ContextXML]; GO
ALTER TABLE [dbo].[SurveyItem] ADD CONSTRAINT [DF_SurveyQuestion_QuestionText] DEFAULT ('') FOR [SurveyText]; GO
ALTER TABLE [dbo].[SurveyItem] ADD CONSTRAINT [DF_SurveyItem_DisplayOrder] DEFAULT ((-1)) FOR [DisplayOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SurveyResults ------------------
---------------------------------------------
CREATE TABLE [dbo].[SurveyResults] (
[DatabaseGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[UserName] varchar(100) NOT NULL,
[DepartmentID] int NOT NULL,
[FiscalYear] int NOT NULL,
[ResultSelection] smallint NOT NULL,
[ResultText] varchar(250) NULL,
[ResearchSignup] bit NOT NULL,
[SubmitDate] datetime NULL,
PRIMARY KEY ([DatabaseGUID], [UserGUID], [FiscalYear])
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.SyncLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[SyncLog] (
[SyncLogGUID] uniqueidentifier NOT NULL,
[SyncDate] datetime NOT NULL,
[SyncSource] nvarchar(400) NOT NULL,
[Message] nvarchar(max) NOT NULL,
[VERSION] timestamp NOT NULL,
PRIMARY KEY ([SyncLogGUID])
);
GO
ALTER TABLE [dbo].[SyncLog] ADD CONSTRAINT [DF_SyncLog_SyncLogGUID] DEFAULT (newid()) FOR [SyncLogGUID]; GO
ALTER TABLE [dbo].[SyncLog] ADD CONSTRAINT [DF_SyncLog_SyncDate] DEFAULT (getdate()) FOR [SyncDate]; GO
ALTER TABLE [dbo].[SyncLog] ADD CONSTRAINT [DF_SyncLog_SyncSource] DEFAULT ('') FOR [SyncSource]; GO
ALTER TABLE [dbo].[SyncLog] ADD CONSTRAINT [DF_SyncLog_Message] DEFAULT ('') FOR [Message]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SysMessage ------------------
---------------------------------------------
CREATE TABLE [dbo].[SysMessage] (
[MessageID] int NOT NULL,
[SeverityVal] tinyint NOT NULL,
[MessageVal] varchar(max) NOT NULL,
[DiscriminatorVal] int NOT NULL,
[IdentifierID] uniqueidentifier NOT NULL,
[IsDeleted] bit NOT NULL,
[Tag] nvarchar(100) NOT NULL,
[TimeStampUtc] datetime NOT NULL,
PRIMARY KEY ([MessageID])
);
CREATE NONCLUSTERED INDEX [NC_SysMessage_IdentifierID] ON [dbo].[SysMessage] ([IdentifierID]);
GO
ALTER TABLE [dbo].[SysMessage] ADD CONSTRAINT [DF__SysMessage__Tag__098D38CB] DEFAULT ('') FOR [Tag]; GO
ALTER TABLE [dbo].[SysMessage] ADD CONSTRAINT [DF__SysMessag__Sever__0A6DB34F] DEFAULT ((1)) FOR [SeverityVal]; GO
ALTER TABLE [dbo].[SysMessage] ADD CONSTRAINT [DF__SysMessag__Messa__0B61D788] DEFAULT ('') FOR [MessageVal]; GO
ALTER TABLE [dbo].[SysMessage] ADD CONSTRAINT [DF__SysMessag__Discr__0C55FBC1] DEFAULT ((0)) FOR [DiscriminatorVal]; GO
ALTER TABLE [dbo].[SysMessage] ADD CONSTRAINT [DF__SysMessag__IsDel__0E3E4433] DEFAULT ((0)) FOR [IsDeleted]; GO
ALTER TABLE [dbo].[SysMessage] ADD CONSTRAINT [DF__SysMessag__TimeS__420BF580] DEFAULT (getutcdate()) FOR [TimeStampUtc]; GO
ALTER TABLE [dbo].[SysMessage] ADD CONSTRAINT [DF__SysMessag__Ident__0D4A1FFA] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [IdentifierID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SystemCenterCategory ------------------
---------------------------------------------
CREATE TABLE [dbo].[SystemCenterCategory] (
[CategoryGUID] uniqueidentifier NOT NULL,
[ModuleGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NOT NULL,
[SortOrder] int NOT NULL,
[IsMaintenanceMode] bit NOT NULL,
[NameHtml] nvarchar(200) NOT NULL,
PRIMARY KEY ([CategoryGUID])
);
GO
ALTER TABLE [dbo].[SystemCenterCategory] ADD CONSTRAINT [FK_SystemCenterCategory_SystemCenterModule] FOREIGN KEY ([ModuleGUID]) REFERENCES [dbo].[SystemCenterModule] ([ModuleGUID]); GO
ALTER TABLE [dbo].[SystemCenterCategory] ADD CONSTRAINT [DF__SystemCen__Categ__401B89DE] DEFAULT (newid()) FOR [CategoryGUID]; GO
ALTER TABLE [dbo].[SystemCenterCategory] ADD CONSTRAINT [DF__SystemCent__Name__410FAE17] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SystemCenterCategory] ADD CONSTRAINT [DF__SystemCen__SortO__4203D250] DEFAULT ((0)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[SystemCenterCategory] ADD CONSTRAINT [DF__SystemCen__IsMai__42F7F689] DEFAULT ((0)) FOR [IsMaintenanceMode]; GO
ALTER TABLE [dbo].[SystemCenterCategory] ADD CONSTRAINT [DF__SystemCen__NameH__6C02FAA3] DEFAULT ('') FOR [NameHtml]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SystemCenterImportHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[SystemCenterImportHistory] (
[HistoryGUID] uniqueidentifier NOT NULL,
[StepGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[UserName] nvarchar(200) NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[TempFilePath] nvarchar(4000) NOT NULL,
PRIMARY KEY ([HistoryGUID])
);
GO
ALTER TABLE [dbo].[SystemCenterImportHistory] ADD CONSTRAINT [FK_SystemCenterImportHistory_SystemCenterStep] FOREIGN KEY ([StepGUID]) REFERENCES [dbo].[SystemCenterStep] ([StepGUID]); GO
ALTER TABLE [dbo].[SystemCenterImportHistory] ADD CONSTRAINT [DF__SystemCen__Histo__013B7ADC] DEFAULT (newid()) FOR [HistoryGUID]; GO
ALTER TABLE [dbo].[SystemCenterImportHistory] ADD CONSTRAINT [DF__SystemCen__UserN__0323C34E] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[SystemCenterImportHistory] ADD CONSTRAINT [DF__SystemCen__DateT__0417E787] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[SystemCenterImportHistory] ADD CONSTRAINT [DF__SystemCen__TempF__050C0BC0] DEFAULT ('') FOR [TempFilePath]; GO
ALTER TABLE [dbo].[SystemCenterImportHistory] ADD CONSTRAINT [DF__SystemCen__UserG__022F9F15] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SystemCenterModule ------------------
---------------------------------------------
CREATE TABLE [dbo].[SystemCenterModule] (
[ModuleGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NOT NULL,
[SolutionGUID] uniqueidentifier NOT NULL,
[SortOrder] int NOT NULL,
[IsLicensed] bit NOT NULL,
[IsSetupComplete] bit NOT NULL,
[IsUsed_DEPRECATED] bit NOT NULL,
[NameHtml] nvarchar(200) NOT NULL,
PRIMARY KEY ([ModuleGUID])
);
GO
ALTER TABLE [dbo].[SystemCenterModule] ADD CONSTRAINT [DF__SystemCen__Modul__396E8C4F] DEFAULT (newid()) FOR [ModuleGUID]; GO
ALTER TABLE [dbo].[SystemCenterModule] ADD CONSTRAINT [DF__SystemCent__Name__3A62B088] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SystemCenterModule] ADD CONSTRAINT [DF__SystemCen__SortO__3B56D4C1] DEFAULT ((0)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[SystemCenterModule] ADD CONSTRAINT [DF__SystemCen__IsLic__3C4AF8FA] DEFAULT ((0)) FOR [IsLicensed]; GO
ALTER TABLE [dbo].[SystemCenterModule] ADD CONSTRAINT [DF__SystemCen__IsSet__3D3F1D33] DEFAULT ((0)) FOR [IsSetupComplete]; GO
ALTER TABLE [dbo].[SystemCenterModule] ADD CONSTRAINT [DF__SystemCen__NameH__6CF71EDC] DEFAULT ('') FOR [NameHtml]; GO
ALTER TABLE [dbo].[SystemCenterModule] ADD CONSTRAINT [DF__SystemCen__IsUse__708B4DBD] DEFAULT ((1)) FOR [IsUsed_DEPRECATED]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SystemCenterSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[SystemCenterSection] (
[SectionGUID] uniqueidentifier NOT NULL,
[SortOrder] int NOT NULL,
[CategoryGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NOT NULL,
[LastUserGUID] uniqueidentifier NULL,
[Date] datetime NOT NULL,
[SectionState] tinyint NOT NULL,
[ViewModelClassName] nvarchar(400) NOT NULL,
[SessionClassName] nvarchar(100) NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[Info] nvarchar(max) NOT NULL,
[LastUserNameFull] nvarchar(200) NOT NULL,
[NameHtml] nvarchar(200) NOT NULL,
PRIMARY KEY ([SectionGUID])
);
GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [FK_SystemCenterSection_SystemCenterCategory] FOREIGN KEY ([CategoryGUID]) REFERENCES [dbo].[SystemCenterCategory] ([CategoryGUID]); GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCen__Secti__46C8876D] DEFAULT (newid()) FOR [SectionGUID]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCen__SortO__47BCABA6] DEFAULT ((0)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCent__Name__48B0CFDF] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCen__LastU__49A4F418] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LastUserGUID]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCent__Date__4A991851] DEFAULT (CONVERT([datetime],(0))) FOR [Date]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCen__Secti__4B8D3C8A] DEFAULT ((0)) FOR [SectionState]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCen__ViewM__4C8160C3] DEFAULT ('') FOR [ViewModelClassName]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCen__Sessi__4D7584FC] DEFAULT ('') FOR [SessionClassName]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCen__Globa__4E69A935] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCent__Info__4F5DCD6E] DEFAULT ('') FOR [Info]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCen__NameH__6B0ED66A] DEFAULT ('') FOR [NameHtml]; GO
ALTER TABLE [dbo].[SystemCenterSection] ADD CONSTRAINT [DF__SystemCen__LastU__717F71F6] DEFAULT ('') FOR [LastUserNameFull]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SystemCenterSolution ------------------
---------------------------------------------
CREATE TABLE [dbo].[SystemCenterSolution] (
[SolutionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NOT NULL,
[SortOrder] int NOT NULL,
[Abbreviation] nvarchar(10) NOT NULL,
[IsStatusDisabled] bit NOT NULL,
PRIMARY KEY ([SolutionGUID])
);
GO
ALTER TABLE [dbo].[SystemCenterSolution] ADD CONSTRAINT [DF__SystemCen__IsSta__0E8826FD] DEFAULT ((0)) FOR [IsStatusDisabled]; GO
ALTER TABLE [dbo].[SystemCenterSolution] ADD CONSTRAINT [DF__SystemCen__Solut__34A9D732] DEFAULT (newid()) FOR [SolutionGUID]; GO
ALTER TABLE [dbo].[SystemCenterSolution] ADD CONSTRAINT [DF__SystemCent__Name__359DFB6B] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SystemCenterSolution] ADD CONSTRAINT [DF__SystemCen__SortO__36921FA4] DEFAULT ((0)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[SystemCenterSolution] ADD CONSTRAINT [DF__SystemCen__Abbre__507383E6] DEFAULT ('') FOR [Abbreviation]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SystemCenterStep ------------------
---------------------------------------------
CREATE TABLE [dbo].[SystemCenterStep] (
[StepGUID] uniqueidentifier NOT NULL,
[SortOrder] int NOT NULL,
[SectionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NOT NULL,
[PropertyXML] xml NOT NULL,
[Url] nvarchar(400) NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[HelpID] nvarchar(200) NOT NULL,
[HelpFileName] nvarchar(200) NOT NULL,
PRIMARY KEY ([StepGUID])
);
GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [FK_SystemCenterStep_SystemCenterSection] FOREIGN KEY ([SectionGUID]) REFERENCES [dbo].[SystemCenterSection] ([SectionGUID]); GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [DF__SystemCen__HelpI__1223ADB7] DEFAULT ('') FOR [HelpID]; GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [DF__SystemCen__HelpF__4485DBA9] DEFAULT ('') FOR [HelpFileName]; GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [DF__SystemCen__StepG__532E5E52] DEFAULT (newid()) FOR [StepGUID]; GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [DF__SystemCen__SortO__5422828B] DEFAULT ((0)) FOR [SortOrder]; GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [DF__SystemCent__Name__5516A6C4] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [DF__SystemCen__Prope__560ACAFD] DEFAULT ('') FOR [PropertyXML]; GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [DF__SystemCente__Url__56FEEF36] DEFAULT ('') FOR [Url]; GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [DF__SystemCen__Globa__57F3136F] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[SystemCenterStep] ADD CONSTRAINT [DF__SystemCen__Descr__58E737A8] DEFAULT ('') FOR [Description]; GO
---------------------------------------------
---------------------------------------------
-- dbo.SystemSection ------------------
---------------------------------------------
CREATE TABLE [dbo].[SystemSection] (
[SYSTEMSECTIONGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[ID] nvarchar(64) NOT NULL,
[ParentGUID] uniqueidentifier NOT NULL,
[FullPath] nvarchar(4000) NOT NULL,
[ImageName] nvarchar(64) NOT NULL,
[LootID] varchar(36) NULL,
[IsCrossBrowser] bit NOT NULL,
PRIMARY KEY ([SYSTEMSECTIONGUID])
);
CREATE CLUSTERED INDEX [IX_SystemSection] ON [dbo].[SystemSection] ([ID]);
GO
ALTER TABLE [dbo].[SystemSection] ADD CONSTRAINT [DF_SystemSection_IsCrossBrowser] DEFAULT ((1)) FOR [IsCrossBrowser]; GO
ALTER TABLE [dbo].[SystemSection] ADD CONSTRAINT [DF_SystemSection_SYSTEMSECTIONGUID] DEFAULT (newid()) FOR [SYSTEMSECTIONGUID]; GO
ALTER TABLE [dbo].[SystemSection] ADD CONSTRAINT [DF_SystemSection_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[SystemSection] ADD CONSTRAINT [DF_SystemSection_ID] DEFAULT ('') FOR [ID]; GO
ALTER TABLE [dbo].[SystemSection] ADD CONSTRAINT [DF_SystemSection_PARENTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentGUID]; GO
ALTER TABLE [dbo].[SystemSection] ADD CONSTRAINT [DF_SystemSection_FULLPATH] DEFAULT ('') FOR [FullPath]; GO
ALTER TABLE [dbo].[SystemSection] ADD CONSTRAINT [DF_SystemSection_IMAGENAME] DEFAULT ('') FOR [ImageName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TEDisabledDatabase ------------------
---------------------------------------------
CREATE TABLE [dbo].[TEDisabledDatabase] (
[DisabledDBConnectionGUID] uniqueidentifier NOT NULL,
[Comment] nvarchar(max) NOT NULL,
PRIMARY KEY ([DisabledDBConnectionGUID])
);
GO
ALTER TABLE [dbo].[TEDisabledDatabase] ADD CONSTRAINT [DF_TEDisabledDatabase_DBCONNECTIONGUID] DEFAULT (newid()) FOR [DisabledDBConnectionGUID]; GO
ALTER TABLE [dbo].[TEDisabledDatabase] ADD CONSTRAINT [DF_TEDisabledDatabase_COMMENT] DEFAULT ('No comment') FOR [Comment]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TEScheduledReminder ------------------
---------------------------------------------
CREATE TABLE [dbo].[TEScheduledReminder] (
[ScheduledTaskReminderGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[RepeatType] int NOT NULL,
[RepeatFrequency] int NOT NULL,
[DayOfWeek] int NOT NULL,
[DayOfMonth] int NOT NULL,
[StartDate] datetime NOT NULL,
[EndDate] datetime NOT NULL,
[HasEndDate] bit NOT NULL,
[IsDisabled] bit NOT NULL,
[HasDisabledExpirationDate] bit NOT NULL,
[DisabledExpirationDate] datetime NOT NULL,
[TaskDuration] int NOT NULL,
[DateCreatedUtc] datetime NOT NULL,
[LastSubmittedDateUtc] datetime NOT NULL,
[TimeZoneId] nvarchar(50) NOT NULL,
[StartTime] time NOT NULL,
PRIMARY KEY ([ScheduledTaskReminderGUID])
);
GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__DateC__4E71CC65] DEFAULT (getutcdate()) FOR [DateCreatedUtc]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__LastS__4F65F09E] DEFAULT (getutcdate()) FOR [LastSubmittedDateUtc]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__TimeZ__505A14D7] DEFAULT ('Central Standard Time') FOR [TimeZoneId]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__Start__514E3910] DEFAULT ('00:00:00') FOR [StartTime]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__Sched__60D1D8A6] DEFAULT (newid()) FOR [ScheduledTaskReminderGUID]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedule__Name__61C5FCDF] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__Repea__63AE4551] DEFAULT ((0)) FOR [RepeatType]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__Repea__64A2698A] DEFAULT ((0)) FOR [RepeatFrequency]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__DayOf__65968DC3] DEFAULT ((0)) FOR [DayOfWeek]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__DayOf__668AB1FC] DEFAULT ((0)) FOR [DayOfMonth]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__Start__6872FA6E] DEFAULT ('1/1/1900') FOR [StartDate]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__EndDa__69671EA7] DEFAULT ('1/1/1900') FOR [EndDate]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__HasEn__6A5B42E0] DEFAULT ((1)) FOR [HasEndDate]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__IsDis__6C438B52] DEFAULT ((0)) FOR [IsDisabled]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__HasDi__6D37AF8B] DEFAULT ((0)) FOR [HasDisabledExpirationDate]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__Disab__6E2BD3C4] DEFAULT ('1/1/1900') FOR [DisabledExpirationDate]; GO
ALTER TABLE [dbo].[TEScheduledReminder] ADD CONSTRAINT [DF__TESchedul__TaskD__6F1FF7FD] DEFAULT ((0)) FOR [TaskDuration]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TEScheduledTask ------------------
---------------------------------------------
CREATE TABLE [dbo].[TEScheduledTask] (
[ScheduledTaskGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[RepeatType] int NOT NULL,
[RepeatFrequency] int NOT NULL,
[DayOfWeek] int NOT NULL,
[DayOfMonth] int NOT NULL,
[StartDate] datetime NOT NULL,
[EndDate] datetime NOT NULL,
[HasEndDate] bit NOT NULL,
[SetupXML] nvarchar(max) NOT NULL,
[AssemblyQualifiedName] nvarchar(450) NOT NULL,
[HasRun] bit NOT NULL,
[IsDisabled] bit NOT NULL,
[HasDisabledExpirationDate] bit NOT NULL,
[DisabledExpirationDate] datetime NOT NULL,
[DateCreatedUtc] datetime NOT NULL,
[LastRunDateUtc] datetime NOT NULL,
[LastSubmittedDateUtc] datetime NOT NULL,
[StartTime] time NOT NULL,
[TimeZoneId] nvarchar(50) NOT NULL,
PRIMARY KEY ([ScheduledTaskGUID])
);
GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_REPEATFREQUENCY] DEFAULT ((0)) FOR [RepeatFrequency]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_DAYOFWEEK] DEFAULT ((0)) FOR [DayOfWeek]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_DAYOFMONTH] DEFAULT ((0)) FOR [DayOfMonth]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_STARTDATE] DEFAULT ('1/1/1900') FOR [StartDate]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_ENDDATE] DEFAULT ('1/1/1900') FOR [EndDate]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_TEScheduledTask_HASENDDATE] DEFAULT ((1)) FOR [HasEndDate]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_SETUPXML] DEFAULT ('') FOR [SetupXML]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_CLASSFULLNAME] DEFAULT ('') FOR [AssemblyQualifiedName]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_TEScheduledTask_HASRUN] DEFAULT ((0)) FOR [HasRun]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_TEScheduledTask_HasDisabledExpirationDate] DEFAULT ((0)) FOR [HasDisabledExpirationDate]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_TEScheduledTask_DisabledExpirationDate] DEFAULT ('1/1/1900') FOR [DisabledExpirationDate]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF__TESchedul__DateC__49AD1748] DEFAULT (getutcdate()) FOR [DateCreatedUtc]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF__TESchedul__LastR__4AA13B81] DEFAULT (getutcdate()) FOR [LastRunDateUtc]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF__TESchedul__LastS__4B955FBA] DEFAULT (getutcdate()) FOR [LastSubmittedDateUtc]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF__TESchedul__Start__4C8983F3] DEFAULT ('00:00:00') FOR [StartTime]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF__TESchedul__TimeZ__4D7DA82C] DEFAULT ('Central Standard Time') FOR [TimeZoneId]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_TEScheduledTask_IsDisabled] DEFAULT ((0)) FOR [IsDisabled]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_SCHEDULEEVENTGUID] DEFAULT (newid()) FOR [ScheduledTaskGUID]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[TEScheduledTask] ADD CONSTRAINT [DF_ScheduleEvent_REPEATTYPE] DEFAULT ((0)) FOR [RepeatType]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TETask ------------------
---------------------------------------------
CREATE TABLE [dbo].[TETask] (
[TaskID] int NOT NULL,
[TaskGUID] uniqueidentifier NOT NULL,
[Name] varchar(450) NOT NULL,
[Status] int NOT NULL,
[ContextXML] varchar(max) NOT NULL,
[CreationTime] datetime NOT NULL,
[StartTime] datetime NOT NULL,
[NextRunTime] datetime NOT NULL,
[LastRunTime] datetime NOT NULL,
[Priority] int NOT NULL,
[DBConnectionGUID] uniqueidentifier NOT NULL,
[AssemblyQualifiedName] varchar(1024) NOT NULL,
[ISCollapsible] bit NOT NULL,
[CollapsibleID] nvarchar(max) NOT NULL,
[RetryCount] int NOT NULL,
[TokenGUID] uniqueidentifier NOT NULL,
[FromScheduledTaskGUID] uniqueidentifier NOT NULL,
[AssemblyKey] varchar(64) NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[TaskSource] varchar(450) NULL,
[WorkerID] uniqueidentifier NOT NULL,
[GroupingID] nvarchar(100) NOT NULL,
[GroupingIndex] smallint NOT NULL,
[UserName] nvarchar(100) NOT NULL,
PRIMARY KEY ([TaskGUID], [Status], [Priority], [AssemblyKey])
);
CREATE NONCLUSTERED INDEX [NCNU_Name] ON [dbo].[TETask] ([Name]);
CREATE NONCLUSTERED INDEX [OrderBy] ON [dbo].[TETask] ([Priority], [CreationTime]);
GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_TASKGUID] DEFAULT (newid()) FOR [TaskGUID]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_STATUS] DEFAULT ((0)) FOR [Status]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_CONTEXTXML] DEFAULT ('') FOR [ContextXML]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_CREATIONTIME] DEFAULT (getdate()) FOR [CreationTime]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_STARTTIME] DEFAULT ('1/1/1900') FOR [StartTime]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_LASTRUNTIME] DEFAULT ('1/1/1900') FOR [LastRunTime]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_PRIORITY] DEFAULT ((0)) FOR [Priority]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_DBCONNECTIONGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DBConnectionGUID]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_ASSEMBLYQUALIFIEDNAME] DEFAULT ('') FOR [AssemblyQualifiedName]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_ISCOLLAPSABLE] DEFAULT ((0)) FOR [ISCollapsible]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_COLLAPSABLEID] DEFAULT ('') FOR [CollapsibleID]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_RETRIES] DEFAULT ((0)) FOR [RetryCount]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_TOKENGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TokenGUID]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_FROMSCHEDULEDTASKGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FromScheduledTaskGUID]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_ASSEMBLYKEY] DEFAULT ('') FOR [AssemblyKey]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_TaskSource] DEFAULT ('') FOR [TaskSource]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_GroupingID] DEFAULT ('') FOR [GroupingID]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_GroupingIndex] DEFAULT ((0)) FOR [GroupingIndex]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_NextRunTime] DEFAULT (getdate()) FOR [NextRunTime]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_UserName] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[TETask] ADD CONSTRAINT [DF_TETask_WorkerID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkerID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TETaskHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[TETaskHistory] (
[TaskID] int NULL,
[TaskGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[Status] int NOT NULL,
[ContextXML] xml NOT NULL,
[CreationTime] datetime NOT NULL,
[StartTime] datetime NOT NULL,
[LastRunTime] datetime NOT NULL,
[Priority] int NOT NULL,
[DBConnectionGUID] uniqueidentifier NOT NULL,
[AssemblyQualifiedName] nvarchar(1024) NOT NULL,
[IsCollapsible] bit NOT NULL,
[CollapsibleID] nvarchar(max) NOT NULL,
[RetryCount] int NOT NULL,
[TokenGUID] uniqueidentifier NOT NULL,
[FromScheduledTaskGUID] uniqueidentifier NOT NULL,
[AssemblyKey] nvarchar(1024) NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[NextRunTime] datetime NOT NULL,
[DEQUEUETIME] datetime NULL,
[TASKSOURCE] varchar(450) NULL,
[WORKERNAME] varchar(1024) NULL,
[ERRORLOGGUID] uniqueidentifier NULL,
[TASKENGINEVERSION] varchar(450) NULL,
[TASKHISTORYID] int NOT NULL,
[WORKERID] uniqueidentifier NOT NULL,
[GroupingID] nvarchar(100) NOT NULL,
[GroupingIndex] smallint NOT NULL,
[UserName] nvarchar(100) NOT NULL,
PRIMARY KEY ([TASKHISTORYID])
);
CREATE NONCLUSTERED INDEX [IX_NC_TASKGUID] ON [dbo].[TETaskHistory] ([TaskGUID]);
GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_GroupingID] DEFAULT ('') FOR [GroupingID]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_GroupingIndex] DEFAULT ((0)) FOR [GroupingIndex]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_TASKGUID] DEFAULT (newid()) FOR [TaskGUID]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_WORKERID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WORKERID]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_STATUS] DEFAULT ((0)) FOR [Status]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_CONTEXTXML] DEFAULT ('') FOR [ContextXML]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_CREATIONTIME] DEFAULT (getdate()) FOR [CreationTime]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_STARTTIME] DEFAULT ('1/1/1900') FOR [StartTime]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_LASTRUNTIME] DEFAULT ('1/1/1900') FOR [LastRunTime]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_PRIORITY] DEFAULT ((0)) FOR [Priority]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_DBCONNECTIONGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DBConnectionGUID]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_ASSEMBLYQUALIFIEDNAME] DEFAULT ('') FOR [AssemblyQualifiedName]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_ISCOLLAPSABLE] DEFAULT ((0)) FOR [IsCollapsible]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_COLLAPSABLEID] DEFAULT ('') FOR [CollapsibleID]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_RETRIES] DEFAULT ((0)) FOR [RetryCount]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_TOKENGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TokenGUID]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_FROMSCHEDULEDTASKGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FromScheduledTaskGUID]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_ASSEMBLYKEY] DEFAULT ('') FOR [AssemblyKey]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_USERGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_NextRunTime] DEFAULT ('1/1/1900') FOR [NextRunTime]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_DEQUEUETIME] DEFAULT (getdate()) FOR [DEQUEUETIME]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_TASKSOURCE] DEFAULT ('') FOR [TASKSOURCE]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_WORKERNAME] DEFAULT ('') FOR [WORKERNAME]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_UserName] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[TETaskHistory] ADD CONSTRAINT [DF_TETaskHistory_TASKENGINEVERSION] DEFAULT ('') FOR [TASKENGINEVERSION]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TableDeleteVersion ------------------
---------------------------------------------
CREATE TABLE [dbo].[TableDeleteVersion] (
[TableName] nvarchar(64) NOT NULL,
[DeleteVersion] timestamp NOT NULL
);
GO
ALTER TABLE [dbo].[TableDeleteVersion] ADD CONSTRAINT [DF_Table_1_TableName] DEFAULT ('') FOR [TableName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.Tag ------------------
---------------------------------------------
CREATE TABLE [dbo].[Tag] (
[TagGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(400) NOT NULL,
PRIMARY KEY ([TagGUID])
);
GO
ALTER TABLE [dbo].[Tag] ADD CONSTRAINT [DF_Tag_TagGUID] DEFAULT (newid()) FOR [TagGUID]; GO
ALTER TABLE [dbo].[Tag] ADD CONSTRAINT [DF_Tag_Tag] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TaskProgressStatus ------------------
---------------------------------------------
CREATE TABLE [dbo].[TaskProgressStatus] (
[RowID] bigint NOT NULL,
[TaskGUID] uniqueidentifier NOT NULL,
[DataXML] xml NOT NULL,
[StartTime] datetime NOT NULL,
[TaskStatus] nvarchar(100) NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
PRIMARY KEY ([RowID])
);
GO
ALTER TABLE [dbo].[TaskProgressStatus] ADD CONSTRAINT [DF_TaskProgressStatus_TaskGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TaskGUID]; GO
ALTER TABLE [dbo].[TaskProgressStatus] ADD CONSTRAINT [DF_TaskProgressStatus_MetaInfoXML] DEFAULT ('') FOR [DataXML]; GO
ALTER TABLE [dbo].[TaskProgressStatus] ADD CONSTRAINT [DF_TaskProgressStatus_StartTime] DEFAULT (getdate()) FOR [StartTime]; GO
ALTER TABLE [dbo].[TaskProgressStatus] ADD CONSTRAINT [DF_TaskProgressStatus_TaskStatus] DEFAULT ('') FOR [TaskStatus]; GO
ALTER TABLE [dbo].[TaskProgressStatus] ADD CONSTRAINT [DF_TaskProgressStatus_GlobalID] DEFAULT ('') FOR [GlobalID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TemplatePublishRequest ------------------
---------------------------------------------
CREATE TABLE [dbo].[TemplatePublishRequest] (
[RequestGUID] uniqueidentifier NOT NULL,
[IssuedAt] datetime NOT NULL,
[FrameworkID] int NOT NULL,
[ExcludedTemplateGUIDs] nvarchar(max) NOT NULL,
[PreSQL] nvarchar(max) NOT NULL,
PRIMARY KEY ([RequestGUID])
);
GO
ALTER TABLE [dbo].[TemplatePublishRequest] ADD CONSTRAINT [DF_TemplatePublishRequest_RequestGUID] DEFAULT (newid()) FOR [RequestGUID]; GO
ALTER TABLE [dbo].[TemplatePublishRequest] ADD CONSTRAINT [DF_TemplatePublishRequest_IssuedAt] DEFAULT (getdate()) FOR [IssuedAt]; GO
ALTER TABLE [dbo].[TemplatePublishRequest] ADD CONSTRAINT [DF__TemplateP__Frame__4DA5CB1C] DEFAULT ((0)) FOR [FrameworkID]; GO
ALTER TABLE [dbo].[TemplatePublishRequest] ADD CONSTRAINT [DF__TemplateP__Exclu__58E43C16] DEFAULT ('') FOR [ExcludedTemplateGUIDs]; GO
ALTER TABLE [dbo].[TemplatePublishRequest] ADD CONSTRAINT [DF__TemplateP__PreSQ__78DB70CF] DEFAULT ('') FOR [PreSQL]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TemplatePublishRequestData ------------------
---------------------------------------------
CREATE TABLE [dbo].[TemplatePublishRequestData] (
[FileGUID] uniqueidentifier NOT NULL,
[RequestGUID] uniqueidentifier NOT NULL,
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[LastModified] datetime NOT NULL,
[Data] varbinary(max) NOT NULL,
PRIMARY KEY ([FileGUID])
);
GO
ALTER TABLE [dbo].[TemplatePublishRequestData] ADD CONSTRAINT [FK_TemplatePublishRequestData_TemplatePublishRequest] FOREIGN KEY ([RequestGUID]) REFERENCES [dbo].[TemplatePublishRequest] ([RequestGUID]); GO
ALTER TABLE [dbo].[TemplatePublishRequestData] ADD CONSTRAINT [DF_TemplatePublishRequestData_RequestGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [RequestGUID]; GO
ALTER TABLE [dbo].[TemplatePublishRequestData] ADD CONSTRAINT [DF_TemplatePublishRequestData_ModelTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelTemplateGUID]; GO
ALTER TABLE [dbo].[TemplatePublishRequestData] ADD CONSTRAINT [DF_TemplatePublishRequestData_FileGUID] DEFAULT (newid()) FOR [FileGUID]; GO
ALTER TABLE [dbo].[TemplatePublishRequestData] ADD CONSTRAINT [DF_TemplatePublishRequestData_LastModified] DEFAULT (getdate()) FOR [LastModified]; GO
---------------------------------------------
---------------------------------------------
-- dbo.TemplateSettings ------------------
---------------------------------------------
CREATE TABLE [dbo].[TemplateSettings] (
[TemplateGUID] uniqueidentifier NOT NULL,
[SettingID] nvarchar(200) NOT NULL,
[Value] nvarchar(max) NOT NULL
);
CREATE UNIQUE CLUSTERED INDEX [CU_TemplateGUID_SettingID] ON [dbo].[TemplateSettings] ([TemplateGUID], [SettingID]);
GO
ALTER TABLE [dbo].[TemplateSettings] ADD CONSTRAINT [DF__TemplateS__Templ__35A28DAB] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [TemplateGUID]; GO
ALTER TABLE [dbo].[TemplateSettings] ADD CONSTRAINT [DF__TemplateS__Setti__3696B1E4] DEFAULT ('') FOR [SettingID]; GO
ALTER TABLE [dbo].[TemplateSettings] ADD CONSTRAINT [DF__TemplateS__Value__378AD61D] DEFAULT ('') FOR [Value]; GO
---------------------------------------------
---------------------------------------------
-- dbo.ThemeInfo ------------------
---------------------------------------------
CREATE TABLE [dbo].[ThemeInfo] (
[ThemeInfoGUID] uniqueidentifier NOT NULL,
[Theme] nvarchar(64) NOT NULL,
[InfoType] nvarchar(64) NOT NULL,
[Value] nvarchar(450) NOT NULL,
PRIMARY KEY ([ThemeInfoGUID])
);
GO
ALTER TABLE [dbo].[ThemeInfo] ADD CONSTRAINT [DF_ThemeInfo_ThemeInfoGUID] DEFAULT (newid()) FOR [ThemeInfoGUID]; GO
ALTER TABLE [dbo].[ThemeInfo] ADD CONSTRAINT [DF_ThemeInfo_Theme] DEFAULT ('') FOR [Theme]; GO
ALTER TABLE [dbo].[ThemeInfo] ADD CONSTRAINT [DF_ThemeInfo_InfoType] DEFAULT ('') FOR [InfoType]; GO
ALTER TABLE [dbo].[ThemeInfo] ADD CONSTRAINT [DF_ThemeInfo_Value] DEFAULT ('') FOR [Value]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UpgradeLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[UpgradeLog] (
[ID] int NOT NULL,
[Version] nvarchar(8) NOT NULL,
[Step] nvarchar(64) NOT NULL,
[Message] nvarchar(max) NOT NULL,
[LogDate] datetime NOT NULL,
[LogDateUtc] datetime NOT NULL,
PRIMARY KEY ([ID])
);
GO
ALTER TABLE [dbo].[UpgradeLog] ADD CONSTRAINT [DF__UpgradeLo__LogDa__46D0AA9D] DEFAULT (getutcdate()) FOR [LogDateUtc]; GO
ALTER TABLE [dbo].[UpgradeLog] ADD CONSTRAINT [DF_UpgradeLog_Version] DEFAULT ('') FOR [Version]; GO
ALTER TABLE [dbo].[UpgradeLog] ADD CONSTRAINT [DF_UpgradeLog_Step] DEFAULT ('') FOR [Step]; GO
ALTER TABLE [dbo].[UpgradeLog] ADD CONSTRAINT [DF_UpgradeLog_Message] DEFAULT ('') FOR [Message]; GO
ALTER TABLE [dbo].[UpgradeLog] ADD CONSTRAINT [DF_UpgradeLog_LogDate] DEFAULT (getdate()) FOR [LogDate]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserDirectoryDefaultView ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserDirectoryDefaultView] (
[UserGUID] uniqueidentifier NOT NULL,
[WorkspaceGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[ViewGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([UserGUID], [WorkspaceGUID], [PlanTypeGUID])
);
GO
ALTER TABLE [dbo].[UserDirectoryDefaultView] ADD CONSTRAINT [DF_UserDirectoryDefaultView_ViewGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ViewGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserFavorite ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserFavorite] (
[UserFavoriteGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[ItemGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(200) NOT NULL,
[Url] nvarchar(200) NOT NULL,
[UrlParams] nvarchar(2000) NOT NULL,
[LinkTypeClassName] nvarchar(100) NOT NULL,
[LinkTypeConfig] nvarchar(max) NOT NULL,
[DateCreated] datetime NOT NULL,
PRIMARY KEY ([UserFavoriteGUID])
);
GO
ALTER TABLE [dbo].[UserFavorite] ADD CONSTRAINT [FK__UserFavor__UserG__6C068FC2] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[UserFavorite] ADD CONSTRAINT [DF__UserFavor__UserF__6B126B89] DEFAULT (newid()) FOR [UserFavoriteGUID]; GO
ALTER TABLE [dbo].[UserFavorite] ADD CONSTRAINT [DF__UserFavor__ItemG__6CFAB3FB] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ItemGUID]; GO
ALTER TABLE [dbo].[UserFavorite] ADD CONSTRAINT [DF__UserFavori__Name__6DEED834] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[UserFavorite] ADD CONSTRAINT [DF__UserFavorit__Url__6EE2FC6D] DEFAULT ('') FOR [Url]; GO
ALTER TABLE [dbo].[UserFavorite] ADD CONSTRAINT [DF__UserFavor__UrlPa__6FD720A6] DEFAULT ('') FOR [UrlParams]; GO
ALTER TABLE [dbo].[UserFavorite] ADD CONSTRAINT [DF__UserFavor__LinkT__70CB44DF] DEFAULT ('') FOR [LinkTypeClassName]; GO
ALTER TABLE [dbo].[UserFavorite] ADD CONSTRAINT [DF__UserFavor__LinkT__71BF6918] DEFAULT ('') FOR [LinkTypeConfig]; GO
ALTER TABLE [dbo].[UserFavorite] ADD CONSTRAINT [DF__UserFavor__DateC__72B38D51] DEFAULT (getdate()) FOR [DateCreated]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserFeedback ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserFeedback] (
[UserFeedbackGUID] uniqueidentifier NOT NULL,
[AuthorGUID] uniqueidentifier NOT NULL,
[AuthorFullName] nvarchar(260) NOT NULL,
[Comment] nvarchar(max) NOT NULL,
[DateCreated] datetime NOT NULL,
PRIMARY KEY ([UserFeedbackGUID])
);
GO
ALTER TABLE [dbo].[UserFeedback] ADD CONSTRAINT [DF__UserFeedb__UserF__37601F5E] DEFAULT (newid()) FOR [UserFeedbackGUID]; GO
ALTER TABLE [dbo].[UserFeedback] ADD CONSTRAINT [DF__UserFeedb__Autho__38544397] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorGUID]; GO
ALTER TABLE [dbo].[UserFeedback] ADD CONSTRAINT [DF__UserFeedb__Autho__394867D0] DEFAULT ('') FOR [AuthorFullName]; GO
ALTER TABLE [dbo].[UserFeedback] ADD CONSTRAINT [DF__UserFeedb__Comme__3A3C8C09] DEFAULT ('') FOR [Comment]; GO
ALTER TABLE [dbo].[UserFeedback] ADD CONSTRAINT [DF__UserFeedb__DateC__3B30B042] DEFAULT (getdate()) FOR [DateCreated]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserGroup ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserGroup] (
[UserGroupGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Type] int NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[Category] nvarchar(64) NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
[IsAdmin] bit NOT NULL,
[IsSysAdmin] bit NOT NULL,
PRIMARY KEY ([UserGroupGUID])
);
CREATE NONCLUSTERED INDEX [IX_UserGroup] ON [dbo].[UserGroup] ([Name]);
GO
ALTER TABLE [dbo].[UserGroup] ADD CONSTRAINT [DF_UserGroup_USERGROUPGUID] DEFAULT (newid()) FOR [UserGroupGUID]; GO
ALTER TABLE [dbo].[UserGroup] ADD CONSTRAINT [DF_UserGroup_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[UserGroup] ADD CONSTRAINT [DF_UserGroup_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[UserGroup] ADD CONSTRAINT [DF_UserGroup_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[UserGroup] ADD CONSTRAINT [DF_UserGroup_CATEGORY] DEFAULT ('') FOR [Category]; GO
ALTER TABLE [dbo].[UserGroup] ADD CONSTRAINT [DF_dbo_UserGroup_IsAdmin] DEFAULT ((0)) FOR [IsAdmin]; GO
ALTER TABLE [dbo].[UserGroup] ADD CONSTRAINT [DF__UserGroup__Globa__62BB2268] DEFAULT ('') FOR [GlobalID]; GO
ALTER TABLE [dbo].[UserGroup] ADD CONSTRAINT [DF_dbo_UserGroup_IsSysAdmin] DEFAULT ((0)) FOR [IsSysAdmin]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserLimit ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserLimit] (
[UserLimitGUID] uniqueidentifier NOT NULL,
[NumUsers] int NOT NULL,
[ModuleGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([UserLimitGUID])
);
GO
ALTER TABLE [dbo].[UserLimit] ADD CONSTRAINT [FK_UserLimit_SystemCenterModule] FOREIGN KEY ([ModuleGUID]) REFERENCES [dbo].[SystemCenterModule] ([ModuleGUID]); GO
ALTER TABLE [dbo].[UserLimit] ADD CONSTRAINT [DF_UserLimit_ModuleGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModuleGUID]; GO
ALTER TABLE [dbo].[UserLimit] ADD CONSTRAINT [DF_UserLimit_UserLimitGUID] DEFAULT (newid()) FOR [UserLimitGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserProfile ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserProfile] (
[UserGUID] uniqueidentifier NOT NULL,
[UserName] nvarchar(64) NOT NULL,
[HashedPassword] nvarchar(64) NOT NULL,
[NameFirst] nvarchar(64) NOT NULL,
[NameLast] nvarchar(64) NOT NULL,
[NameFull] nvarchar(130) NOT NULL,
[EmailAddress] nvarchar(450) NOT NULL,
[PhoneNumber] nvarchar(64) NOT NULL,
[IsSysAdmin_DEPRECATED] bit NOT NULL,
[AuthID] nvarchar(128) NOT NULL,
[IsDisabled] bit NOT NULL,
[BackupPassword] nvarchar(64) NOT NULL,
[DefaultAppModeLevel] tinyint NOT NULL,
[BrowserVersion] nvarchar(64) NOT NULL,
[UserAgent] nvarchar(512) NOT NULL,
[Domain] varchar(64) NOT NULL,
[HIPAADisclaimerStatus] tinyint NOT NULL,
[Custom1] nvarchar(450) NOT NULL,
[Custom2] nvarchar(450) NOT NULL,
[Custom3] nvarchar(450) NOT NULL,
[Custom4] nvarchar(450) NOT NULL,
[IsHidden] bit NOT NULL,
[DotNetVersion] nvarchar(250) NOT NULL,
[LastChangedPasswordUtc] datetime NOT NULL,
[LastLoginDateUtc] datetime NOT NULL,
[Salt] uniqueidentifier NOT NULL,
[NeedsPasswordChange] bit NOT NULL,
PRIMARY KEY ([UserGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_UserProfile] ON [dbo].[UserProfile] ([UserName]);
GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_IsDisabled] DEFAULT ((0)) FOR [IsDisabled]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_BackupPassword] DEFAULT ('') FOR [BackupPassword]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_USERGUID] DEFAULT (newid()) FOR [UserGUID]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF__UserProfi__IsHid__1591E9E3] DEFAULT ((0)) FOR [IsHidden]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_UserName] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_HASHEDPASSWORD] DEFAULT ('') FOR [HashedPassword]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_NameFirst] DEFAULT ('') FOR [NameFirst]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_NameLast] DEFAULT ('') FOR [NameLast]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_EmailAddress] DEFAULT ('') FOR [EmailAddress]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_Custom1] DEFAULT ('') FOR [Custom1]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_PhoneNumber] DEFAULT ('') FOR [PhoneNumber]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_Custom2] DEFAULT ('') FOR [Custom2]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_Custom3] DEFAULT ('') FOR [Custom3]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_IsSysAdmin] DEFAULT ((0)) FOR [IsSysAdmin_DEPRECATED]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_Custom4] DEFAULT ('') FOR [Custom4]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_AuthID] DEFAULT ('') FOR [AuthID]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF__UserProfil__Salt__2F990AE1] DEFAULT (newid()) FOR [Salt]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF__UserProfi__Domai__36F27A1A] DEFAULT ('') FOR [Domain]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF__UserProfi__HIPAA__398A5D63] DEFAULT ((0)) FOR [HIPAADisclaimerStatus]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_DefaultAppModeLevel] DEFAULT ((1)) FOR [DefaultAppModeLevel]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_BrowserVersion] DEFAULT ('Unknown') FOR [BrowserVersion]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_UserAgent] DEFAULT ('Unknown') FOR [UserAgent]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF_UserProfile_NeedsPasswordChange] DEFAULT ((0)) FOR [NeedsPasswordChange]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF__UserProfi__LastC__551EC9F4] DEFAULT (getutcdate()) FOR [LastChangedPasswordUtc]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF__UserProfi__LastL__5612EE2D] DEFAULT (getutcdate()) FOR [LastLoginDateUtc]; GO
ALTER TABLE [dbo].[UserProfile] ADD CONSTRAINT [DF__UserProfi__DotNe__6AE25733] DEFAULT ('') FOR [DotNetVersion]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserProfileAppModeAccessLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserProfileAppModeAccessLink] (
[UserGUID] uniqueidentifier NOT NULL,
[AccessLevel] tinyint NOT NULL,
PRIMARY KEY ([UserGUID], [AccessLevel])
);
GO
ALTER TABLE [dbo].[UserProfileAppModeAccessLink] ADD CONSTRAINT [DF__UserProfi__Acces__6D81CC7D] DEFAULT ((1)) FOR [AccessLevel]; GO
ALTER TABLE [dbo].[UserProfileAppModeAccessLink] ADD CONSTRAINT [DF__UserProfi__UserG__6C8DA844] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserRole ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserRole] (
[UserRoleGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[Type] int NOT NULL,
[Category] nvarchar(64) NOT NULL,
[RoleID] smallint NOT NULL,
[GlobalID] nvarchar(100) NOT NULL,
PRIMARY KEY ([UserRoleGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_UserRole_RoleID] ON [dbo].[UserRole] ([RoleID]);
GO
ALTER TABLE [dbo].[UserRole] ADD CONSTRAINT [DF_UserRole_USERROLEGUID] DEFAULT (newid()) FOR [UserRoleGUID]; GO
ALTER TABLE [dbo].[UserRole] ADD CONSTRAINT [DF_UserRole_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[UserRole] ADD CONSTRAINT [DF_UserRole_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[UserRole] ADD CONSTRAINT [DF_UserRole_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[UserRole] ADD CONSTRAINT [DF_UserRole_CATEGORY] DEFAULT ('') FOR [Category]; GO
ALTER TABLE [dbo].[UserRole] ADD CONSTRAINT [DF__UserRole__Global__78CA5F18] DEFAULT ('') FOR [GlobalID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserSecurityLastModifiedDate ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserSecurityLastModifiedDate] (
[UserGUID] uniqueidentifier NOT NULL,
[LastModifiedDate] datetime NOT NULL,
PRIMARY KEY ([UserGUID])
);
GO
ALTER TABLE [dbo].[UserSecurityLastModifiedDate] ADD CONSTRAINT [DF_UserSecurityLastModifiedDate_UserGUID] DEFAULT (newid()) FOR [UserGUID]; GO
ALTER TABLE [dbo].[UserSecurityLastModifiedDate] ADD CONSTRAINT [DF_UserSecurityLastModifiedDate_LastModifiedDate] DEFAULT (getdate()) FOR [LastModifiedDate]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserSetting ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserSetting] (
[UserSettingGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(128) NOT NULL,
[Setting] nvarchar(max) NOT NULL,
PRIMARY KEY ([UserSettingGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [CORE_UserGUID_Name] ON [dbo].[UserSetting] ([UserGUID], [Name]);
GO
ALTER TABLE [dbo].[UserSetting] ADD CONSTRAINT [DF_UserSetting_SETTING] DEFAULT ('') FOR [Setting]; GO
ALTER TABLE [dbo].[UserSetting] ADD CONSTRAINT [DF_UserSetting_USERSETTINGGUID] DEFAULT (newid()) FOR [UserSettingGUID]; GO
ALTER TABLE [dbo].[UserSetting] ADD CONSTRAINT [DF_UserSetting_USERPROFILEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[UserSetting] ADD CONSTRAINT [DF_UserSetting_NAME] DEFAULT ('') FOR [Name]; GO
---------------------------------------------
---------------------------------------------
-- dbo.UserTag ------------------
---------------------------------------------
CREATE TABLE [dbo].[UserTag] (
[UserTagGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[LicenseGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([UserTagGUID])
);
GO
ALTER TABLE [dbo].[UserTag] ADD CONSTRAINT [FK_UserTag_UserProfile] FOREIGN KEY ([UserGUID]) REFERENCES [dbo].[UserProfile] ([UserGUID]); GO
ALTER TABLE [dbo].[UserTag] ADD CONSTRAINT [DF__UserTag__License__4F638E99] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LicenseGUID]; GO
ALTER TABLE [dbo].[UserTag] ADD CONSTRAINT [DF_UserTag_UserTagGUID] DEFAULT (newid()) FOR [UserTagGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFComment ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFComment] (
[CommentGUID] uniqueidentifier NOT NULL,
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[PositionX] float NOT NULL,
[PositionY] float NOT NULL,
[Text] nvarchar(450) NOT NULL,
PRIMARY KEY ([CommentGUID])
);
CREATE UNIQUE NONCLUSTERED INDEX [IX_WFComment] ON [dbo].[WFComment] ([CommentGUID]);
CREATE NONCLUSTERED INDEX [IX_WFComment_ByWorkflowMap] ON [dbo].[WFComment] ([WorkflowMapGUID]);
GO
ALTER TABLE [dbo].[WFComment] ADD CONSTRAINT [FK_WFComment_WFWorkflowMap] FOREIGN KEY ([WorkflowMapGUID]) REFERENCES [dbo].[WFWorkflowMap] ([WorkflowMapGUID]); GO
ALTER TABLE [dbo].[WFComment] ADD CONSTRAINT [DF_WFComment_COMMENTGUID] DEFAULT (newid()) FOR [CommentGUID]; GO
ALTER TABLE [dbo].[WFComment] ADD CONSTRAINT [DF_WFComment_WORKFLOWGUID] DEFAULT (newid()) FOR [WorkflowMapGUID]; GO
ALTER TABLE [dbo].[WFComment] ADD CONSTRAINT [DF_WFComment_POSITIONX] DEFAULT ((0)) FOR [PositionX]; GO
ALTER TABLE [dbo].[WFComment] ADD CONSTRAINT [DF_WFComment_POSITIONY] DEFAULT ((0)) FOR [PositionY]; GO
ALTER TABLE [dbo].[WFComment] ADD CONSTRAINT [DF_WFComment_TEXT] DEFAULT ('') FOR [Text]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFCondition ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFCondition] (
[ConditionGUID] uniqueidentifier NOT NULL,
[ConditionSetGUID] uniqueidentifier NOT NULL,
[ConditionType] int NOT NULL,
[ParentConditionGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Metadata] nvarchar(max) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[AssemblyName] nvarchar(450) NOT NULL,
[ClassName] nvarchar(450) NOT NULL,
PRIMARY KEY ([ConditionGUID])
);
CREATE CLUSTERED INDEX [IX_WFCondition_BySet] ON [dbo].[WFCondition] ([ConditionSetGUID]);
CREATE NONCLUSTERED INDEX [IX_WFCondition_ByParent] ON [dbo].[WFCondition] ([ParentConditionGUID]);
GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [FK_WFCondition_WFConditionSet] FOREIGN KEY ([ConditionSetGUID]) REFERENCES [dbo].[WFConditionSet] ([ConditionSetGUID]); GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [DF_WFCondition_CONDITIONGUID] DEFAULT (newid()) FOR [ConditionGUID]; GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [DF_WFCondition_CONDITIONSETGUID] DEFAULT (newid()) FOR [ConditionSetGUID]; GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [DF_WFCondition_CONDITIONTYPE] DEFAULT ((0)) FOR [ConditionType]; GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [DF_WFCondition_PARENTCONDITIONGUID] DEFAULT (newid()) FOR [ParentConditionGUID]; GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [DF_WFCondition_NAME_1] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [DF_WFCondition_FIELDNAME] DEFAULT ('') FOR [Metadata]; GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [DF_WFCondition_DISPLAYVALUE] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [DF_WFCondition_ASSEMBLYNAME] DEFAULT ('') FOR [AssemblyName]; GO
ALTER TABLE [dbo].[WFCondition] ADD CONSTRAINT [DF_WFCondition_CLASSNAME] DEFAULT ('') FOR [ClassName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFConditionSet ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFConditionSet] (
[ConditionSetGUID] uniqueidentifier NOT NULL,
[RootConditionGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ConditionSetGUID])
);
GO
ALTER TABLE [dbo].[WFConditionSet] ADD CONSTRAINT [DF_WFConditionSet_CONDITIONSETGUID] DEFAULT (newid()) FOR [ConditionSetGUID]; GO
ALTER TABLE [dbo].[WFConditionSet] ADD CONSTRAINT [DF_WFConditionSet_ROOTCONDITIONGUID] DEFAULT (newid()) FOR [RootConditionGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFEmailNotificationRequest ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFEmailNotificationRequest] (
[EmailNotificationRequestGuid] uniqueidentifier NOT NULL,
[PlanGuid] uniqueidentifier NOT NULL,
[StepGuid] uniqueidentifier NOT NULL,
[UserGuid] uniqueidentifier NOT NULL,
[DateTimeStamp] datetime NOT NULL,
PRIMARY KEY ([EmailNotificationRequestGuid])
);
GO
ALTER TABLE [dbo].[WFEmailNotificationRequest] ADD CONSTRAINT [DF__WFEmailNo__Email__3FD6CEB2] DEFAULT (newid()) FOR [EmailNotificationRequestGuid]; GO
ALTER TABLE [dbo].[WFEmailNotificationRequest] ADD CONSTRAINT [DF__WFEmailNo__PlanG__40CAF2EB] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanGuid]; GO
ALTER TABLE [dbo].[WFEmailNotificationRequest] ADD CONSTRAINT [DF__WFEmailNo__StepG__41BF1724] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [StepGuid]; GO
ALTER TABLE [dbo].[WFEmailNotificationRequest] ADD CONSTRAINT [DF__WFEmailNo__UserG__42B33B5D] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGuid]; GO
ALTER TABLE [dbo].[WFEmailNotificationRequest] ADD CONSTRAINT [DF__WFEmailNo__DateT__43A75F96] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFEventPlan ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFEventPlan] (
[EventPlanGUID] uniqueidentifier NOT NULL,
[RootEventPlanStatementGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([EventPlanGUID])
);
GO
ALTER TABLE [dbo].[WFEventPlan] ADD CONSTRAINT [FK_WFEventPlan_WFEventPlanStatement] FOREIGN KEY ([RootEventPlanStatementGUID]) REFERENCES [dbo].[WFEventPlanStatement] ([EventPlanStatementGUID]); GO
ALTER TABLE [dbo].[WFEventPlan] ADD CONSTRAINT [DF_WFEventPlan_EVENTPLANGUID] DEFAULT (newid()) FOR [EventPlanGUID]; GO
ALTER TABLE [dbo].[WFEventPlan] ADD CONSTRAINT [DF_WFEventPlan_ROOTEVENTPLANSTATEMENTGUID] DEFAULT (newid()) FOR [RootEventPlanStatementGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFEventPlanStatement ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFEventPlanStatement] (
[EventPlanStatementGUID] uniqueidentifier NOT NULL,
[ParentEventPlanStatementGUID] uniqueidentifier NOT NULL,
[Type] int NOT NULL,
[StatementGUID] uniqueidentifier NOT NULL,
[EventPlanGUID] uniqueidentifier NOT NULL,
[ExecutionOrder] int NOT NULL,
PRIMARY KEY ([EventPlanStatementGUID])
);
CREATE CLUSTERED INDEX [IX_WFEventPlanStatement] ON [dbo].[WFEventPlanStatement] ([EventPlanGUID]);
GO
ALTER TABLE [dbo].[WFEventPlanStatement] ADD CONSTRAINT [FK_WFEventPlanStatement_WFAction] FOREIGN KEY ([StatementGUID]) REFERENCES [dbo].[CustomAction] ([ActionGUID]); GO
ALTER TABLE [dbo].[WFEventPlanStatement] ADD CONSTRAINT [FK_WFEventPlanStatement_WFConditionSet] FOREIGN KEY ([StatementGUID]) REFERENCES [dbo].[WFConditionSet] ([ConditionSetGUID]); GO
ALTER TABLE [dbo].[WFEventPlanStatement] ADD CONSTRAINT [DF_WFEventPlanStatement_EVENTPLANSTATEMENTGUID] DEFAULT (newid()) FOR [EventPlanStatementGUID]; GO
ALTER TABLE [dbo].[WFEventPlanStatement] ADD CONSTRAINT [DF_WFEventPlanStatement_PARENTEVENTPLANSTATEMENTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentEventPlanStatementGUID]; GO
ALTER TABLE [dbo].[WFEventPlanStatement] ADD CONSTRAINT [DF_WFEventPlanStatement_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[WFEventPlanStatement] ADD CONSTRAINT [DF_WFEventPlanStatement_STATEMENTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [StatementGUID]; GO
ALTER TABLE [dbo].[WFEventPlanStatement] ADD CONSTRAINT [DF_WFEventPlanStatement_EVENTPLANGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EventPlanGUID]; GO
ALTER TABLE [dbo].[WFEventPlanStatement] ADD CONSTRAINT [DF_WFEventPlanStatement_ExecutionOrder] DEFAULT ((0)) FOR [ExecutionOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFHistory ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFHistory] (
[WorkflowHistoryGUID] uniqueidentifier NOT NULL,
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[WorkflowStepGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[HistoryType] int NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[IsDeleted] bit NOT NULL,
[SkippingReason] nvarchar(2000) NULL,
PRIMARY KEY ([WorkflowHistoryGUID])
);
GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [FK_WFHistory_WFWorkflowMap] FOREIGN KEY ([WorkflowMapGUID]) REFERENCES [dbo].[WFWorkflowMap] ([WorkflowMapGUID]); GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [FK_WFHistory_WFWorkflowStep] FOREIGN KEY ([WorkflowStepGUID]) REFERENCES [dbo].[WFWorkflowStep] ([WorkflowStepGUID]); GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [DF_WFHistory_WorkflowMapGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkflowMapGUID]; GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [DF_WFHistory_WorkflowStepGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkflowStepGUID]; GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [DF_WFHistory_EntityGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityGUID]; GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [DF_WFHistory_WorkflowHistoryGUID] DEFAULT (newid()) FOR [WorkflowHistoryGUID]; GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [DF_WFHistory_HistoryType] DEFAULT ((0)) FOR [HistoryType]; GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [DF_WFHistory_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [DF_WFHistory_IsDeleted] DEFAULT ((0)) FOR [IsDeleted]; GO
ALTER TABLE [dbo].[WFHistory] ADD CONSTRAINT [DF__WFHistory__Skipp__7A1719FC] DEFAULT ('') FOR [SkippingReason]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFOverdueReviewLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFOverdueReviewLog] (
[LogGUID] uniqueidentifier NOT NULL,
[PlanGUID] uniqueidentifier NOT NULL,
[UserGUID] uniqueidentifier NOT NULL,
[WorkflowStepGUID] uniqueidentifier NOT NULL,
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[DateTimeStamp] datetime NOT NULL,
[MessageGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([LogGUID])
);
GO
ALTER TABLE [dbo].[WFOverdueReviewLog] ADD CONSTRAINT [DF_WFOverdueReviewLog_PlanGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanGUID]; GO
ALTER TABLE [dbo].[WFOverdueReviewLog] ADD CONSTRAINT [DF_WFOverdueReviewLog_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
ALTER TABLE [dbo].[WFOverdueReviewLog] ADD CONSTRAINT [DF_WFOverdueReviewLog_UserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [UserGUID]; GO
ALTER TABLE [dbo].[WFOverdueReviewLog] ADD CONSTRAINT [DF_WFOverdueReviewLog_WorkflowStepGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkflowStepGUID]; GO
ALTER TABLE [dbo].[WFOverdueReviewLog] ADD CONSTRAINT [DF_WFOverdueReviewLog_WorkflowMapGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkflowMapGUID]; GO
ALTER TABLE [dbo].[WFOverdueReviewLog] ADD CONSTRAINT [DF_WFOverdueReviewLog_MessageGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [MessageGUID]; GO
ALTER TABLE [dbo].[WFOverdueReviewLog] ADD CONSTRAINT [DF_WFOverdueReviewLog_LogGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LogGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFProcess ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFProcess] (
[ProcessGUID] uniqueidentifier NOT NULL,
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[DisplayOrder] int NOT NULL,
[IsConcurrent] bit NOT NULL,
PRIMARY KEY ([ProcessGUID])
);
CREATE NONCLUSTERED INDEX [IX_WFProcess_ByMap] ON [dbo].[WFProcess] ([WorkflowMapGUID]);
CREATE NONCLUSTERED INDEX [IX_WFProcess_DisplayOrder] ON [dbo].[WFProcess] ([DisplayOrder]);
GO
ALTER TABLE [dbo].[WFProcess] ADD CONSTRAINT [FK_WFProcess_WFWorkflowMap] FOREIGN KEY ([WorkflowMapGUID]) REFERENCES [dbo].[WFWorkflowMap] ([WorkflowMapGUID]); GO
ALTER TABLE [dbo].[WFProcess] ADD CONSTRAINT [DF_WFProcess_PROCESSGUID] DEFAULT (newid()) FOR [ProcessGUID]; GO
ALTER TABLE [dbo].[WFProcess] ADD CONSTRAINT [DF_WFProcess_WORKFLOWGUID] DEFAULT (newid()) FOR [WorkflowMapGUID]; GO
ALTER TABLE [dbo].[WFProcess] ADD CONSTRAINT [DF_WFProcess_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[WFProcess] ADD CONSTRAINT [DF_WFProcess_DISPLAYORDER] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[WFProcess] ADD CONSTRAINT [DF_WFProcess_HASCONCURRENTSTEPS] DEFAULT ((0)) FOR [IsConcurrent]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFProcessStepLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFProcessStepLink] (
[ProcessStepLinkGUID] uniqueidentifier NOT NULL,
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[ProcessGUID] uniqueidentifier NOT NULL,
[WorkflowStepGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ProcessStepLinkGUID])
);
CREATE CLUSTERED INDEX [IX_WFProcessStepLink_ByMap] ON [dbo].[WFProcessStepLink] ([WorkflowMapGUID]);
GO
ALTER TABLE [dbo].[WFProcessStepLink] ADD CONSTRAINT [FK_WFProcessStepLink_WFProcess] FOREIGN KEY ([ProcessGUID]) REFERENCES [dbo].[WFProcess] ([ProcessGUID]); GO
ALTER TABLE [dbo].[WFProcessStepLink] ADD CONSTRAINT [FK_WFProcessStepLink_WFWorkflowStep] FOREIGN KEY ([WorkflowStepGUID]) REFERENCES [dbo].[WFWorkflowStep] ([WorkflowStepGUID]); GO
ALTER TABLE [dbo].[WFProcessStepLink] ADD CONSTRAINT [DF_WFProcessStepLink_WORKFLOWGROUPINGGUID] DEFAULT (newid()) FOR [ProcessStepLinkGUID]; GO
ALTER TABLE [dbo].[WFProcessStepLink] ADD CONSTRAINT [DF_WFProcessStepLink_WORKFLOWMAPGUID] DEFAULT (newid()) FOR [WorkflowMapGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFReviewValue ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFReviewValue] (
[ReviewValueGUID] uniqueidentifier NOT NULL,
[IdentityGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[WorkflowStepGUID] uniqueidentifier NOT NULL,
[ReviewValueTypeGUID] uniqueidentifier NOT NULL,
[Comments] nvarchar(max) NOT NULL,
[DateTimeStamp] datetime NOT NULL,
PRIMARY KEY ([ReviewValueGUID])
);
CREATE NONCLUSTERED INDEX [IX_EntityGuid_Workflowstepguid] ON [dbo].[WFReviewValue] ([EntityGUID], [WorkflowStepGUID]);
GO
ALTER TABLE [dbo].[WFReviewValue] ADD CONSTRAINT [DF_WFReviewValue_REVIEWVALUEGUID] DEFAULT (newid()) FOR [ReviewValueGUID]; GO
ALTER TABLE [dbo].[WFReviewValue] ADD CONSTRAINT [DF_WFReviewValue_IDENTITYGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [IdentityGUID]; GO
ALTER TABLE [dbo].[WFReviewValue] ADD CONSTRAINT [DF_WFReviewValue_ENTITYGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityGUID]; GO
ALTER TABLE [dbo].[WFReviewValue] ADD CONSTRAINT [DF_WFReviewValue_WORKFLOWSTEPGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkflowStepGUID]; GO
ALTER TABLE [dbo].[WFReviewValue] ADD CONSTRAINT [DF_WFReviewValue_REVIEWVALUETYPEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReviewValueTypeGUID]; GO
ALTER TABLE [dbo].[WFReviewValue] ADD CONSTRAINT [DF_WFReviewValue_COMMENTS] DEFAULT ('') FOR [Comments]; GO
ALTER TABLE [dbo].[WFReviewValue] ADD CONSTRAINT [DF_WFReviewValue_DateTimeStamp] DEFAULT (getdate()) FOR [DateTimeStamp]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFReviewValueType ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFReviewValueType] (
[ReviewValueTypeGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[FriendlyName] nvarchar(64) NOT NULL,
[ImageIndex] int NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[HasRequiredComments] bit NOT NULL,
[NotificationType] uniqueidentifier NOT NULL,
[IsMovingForward] bit NOT NULL,
[IsNotificationEnabled] bit NOT NULL,
PRIMARY KEY ([ReviewValueTypeGUID])
);
GO
ALTER TABLE [dbo].[WFReviewValueType] ADD CONSTRAINT [DF_WFReviewValueType_IsNotificationEnabled] DEFAULT ((1)) FOR [IsNotificationEnabled]; GO
ALTER TABLE [dbo].[WFReviewValueType] ADD CONSTRAINT [DF_WFReviewValueType_REVIEWVALUETYPEGUID] DEFAULT (newid()) FOR [ReviewValueTypeGUID]; GO
ALTER TABLE [dbo].[WFReviewValueType] ADD CONSTRAINT [DF_WFReviewValueType_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[WFReviewValueType] ADD CONSTRAINT [DF_WFReviewValueType_FriendlyName] DEFAULT ('') FOR [FriendlyName]; GO
ALTER TABLE [dbo].[WFReviewValueType] ADD CONSTRAINT [DF_WFReviewValueType_IMAGEINDEX] DEFAULT ((0)) FOR [ImageIndex]; GO
ALTER TABLE [dbo].[WFReviewValueType] ADD CONSTRAINT [DF_WFReviewValueType_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[WFReviewValueType] ADD CONSTRAINT [DF_WFReviewValueType_HASREQUIREDCOMMENTS] DEFAULT ((0)) FOR [HasRequiredComments]; GO
ALTER TABLE [dbo].[WFReviewValueType] ADD CONSTRAINT [DF_WFReviewValueType_NOTIFICATIONTYPE] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [NotificationType]; GO
ALTER TABLE [dbo].[WFReviewValueType] ADD CONSTRAINT [DF_WFReviewValueType_IsMovingForward] DEFAULT ((1)) FOR [IsMovingForward]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFReviewerAssignment ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFReviewerAssignment] (
[ReviewerAssignmentGUID] uniqueidentifier NOT NULL,
[WorkflowStepGUID] uniqueidentifier NOT NULL,
[IdentityGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([ReviewerAssignmentGUID])
);
CREATE CLUSTERED INDEX [IX_WFReviewerAssignment] ON [dbo].[WFReviewerAssignment] ([WorkflowStepGUID]);
GO
ALTER TABLE [dbo].[WFReviewerAssignment] ADD CONSTRAINT [FK_WFReviewerAssignment_WFWorkflowStep] FOREIGN KEY ([WorkflowStepGUID]) REFERENCES [dbo].[WFWorkflowStep] ([WorkflowStepGUID]); GO
ALTER TABLE [dbo].[WFReviewerAssignment] ADD CONSTRAINT [DF_WFReviewerAssignment_REVIEWERASSIGNMENTGUID] DEFAULT (newid()) FOR [ReviewerAssignmentGUID]; GO
ALTER TABLE [dbo].[WFReviewerAssignment] ADD CONSTRAINT [DF_WFReviewerAssignment_WORKFLOWSTEPGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkflowStepGUID]; GO
ALTER TABLE [dbo].[WFReviewerAssignment] ADD CONSTRAINT [DF_WFReviewerAssignment_IDENTITYGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [IdentityGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFReviewerDelegate ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFReviewerDelegate] (
[ReviewerDelegateGUID] uniqueidentifier NOT NULL,
[WorkflowStepGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[ReviewerUserGUID] uniqueidentifier NOT NULL,
[DelegateUserGUID] uniqueidentifier NOT NULL,
[IsFromOutOfOfficeSchedule] bit NOT NULL,
PRIMARY KEY ([ReviewerDelegateGUID])
);
GO
ALTER TABLE [dbo].[WFReviewerDelegate] ADD CONSTRAINT [FK_WFReviewerDelegate_WFWorkflowStep] FOREIGN KEY ([WorkflowStepGUID]) REFERENCES [dbo].[WFWorkflowStep] ([WorkflowStepGUID]); GO
ALTER TABLE [dbo].[WFReviewerDelegate] ADD CONSTRAINT [DF_Table_1_ReviewerIdentityGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReviewerUserGUID]; GO
ALTER TABLE [dbo].[WFReviewerDelegate] ADD CONSTRAINT [DF_WFReviewerDelegate_DelegateUserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DelegateUserGUID]; GO
ALTER TABLE [dbo].[WFReviewerDelegate] ADD CONSTRAINT [DF_Table_1_DelegateGUID] DEFAULT (newid()) FOR [ReviewerDelegateGUID]; GO
ALTER TABLE [dbo].[WFReviewerDelegate] ADD CONSTRAINT [DF_WFReviewerDelegate_WorkflowStepGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkflowStepGUID]; GO
ALTER TABLE [dbo].[WFReviewerDelegate] ADD CONSTRAINT [DF__WFReviewe__IsFro__6618AC42] DEFAULT ((0)) FOR [IsFromOutOfOfficeSchedule]; GO
ALTER TABLE [dbo].[WFReviewerDelegate] ADD CONSTRAINT [DF_WFReviewerDelegate_EntityGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [EntityGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFReviewerOutOfOffice ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFReviewerOutOfOffice] (
[ReviewerGUID] uniqueidentifier NOT NULL,
[StartDateTime] datetime NOT NULL,
[EndDateTime] datetime NOT NULL,
[IsOutOfOffice] bit NOT NULL,
[DelegatedReviewerGUID] uniqueidentifier NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.WFStepReviewValueTypeLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFStepReviewValueTypeLink] (
[StepReviewValueTypeLinkGUID] uniqueidentifier NOT NULL,
[WorkflowStepGUID] uniqueidentifier NOT NULL,
[ReviewValueTypeGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([StepReviewValueTypeLinkGUID])
);
CREATE CLUSTERED INDEX [IX_WFStepReviewValueLink] ON [dbo].[WFStepReviewValueTypeLink] ([WorkflowStepGUID]);
GO
ALTER TABLE [dbo].[WFStepReviewValueTypeLink] ADD CONSTRAINT [FK_WFStepReviewValueTypeLink_WFReviewValueType] FOREIGN KEY ([ReviewValueTypeGUID]) REFERENCES [dbo].[WFReviewValueType] ([ReviewValueTypeGUID]); GO
ALTER TABLE [dbo].[WFStepReviewValueTypeLink] ADD CONSTRAINT [FK_WFStepReviewValueTypeLink_WFWorkflowStep] FOREIGN KEY ([WorkflowStepGUID]) REFERENCES [dbo].[WFWorkflowStep] ([WorkflowStepGUID]); GO
ALTER TABLE [dbo].[WFStepReviewValueTypeLink] ADD CONSTRAINT [DF_WFStepReviewValueLink_STEPREVIEWVALUELINKGUID] DEFAULT (newid()) FOR [StepReviewValueTypeLinkGUID]; GO
ALTER TABLE [dbo].[WFStepReviewValueTypeLink] ADD CONSTRAINT [DF_WFStepReviewValueLink_WORKFLOWSTEPGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkflowStepGUID]; GO
ALTER TABLE [dbo].[WFStepReviewValueTypeLink] ADD CONSTRAINT [DF_WFStepReviewValueLink_REVIEWVALUETYPEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReviewValueTypeGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFToken ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFToken] (
[WorkflowTokenGUID] uniqueidentifier NOT NULL,
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[EntityGUID] uniqueidentifier NOT NULL,
[WorkflowStepGUID] uniqueidentifier NOT NULL,
[IsFromManualMove] bit NOT NULL,
PRIMARY KEY ([WorkflowTokenGUID])
);
CREATE NONCLUSTERED INDEX [IX_WFToken_ByMap] ON [dbo].[WFToken] ([WorkflowMapGUID]);
CREATE NONCLUSTERED INDEX [IX_WFToken_ByEntity] ON [dbo].[WFToken] ([EntityGUID]);
CREATE NONCLUSTERED INDEX [IX_WFToken_ByStep] ON [dbo].[WFToken] ([WorkflowStepGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_WFToken_ByStepEntity] ON [dbo].[WFToken] ([WorkflowStepGUID], [EntityGUID]);
GO
ALTER TABLE [dbo].[WFToken] ADD CONSTRAINT [FK_WFToken_WFWorkflowMap] FOREIGN KEY ([WorkflowMapGUID]) REFERENCES [dbo].[WFWorkflowMap] ([WorkflowMapGUID]); GO
ALTER TABLE [dbo].[WFToken] ADD CONSTRAINT [DF_WFToken_IsFromManualMove] DEFAULT ((0)) FOR [IsFromManualMove]; GO
ALTER TABLE [dbo].[WFToken] ADD CONSTRAINT [DF_WFWorkflowToken_WORKFLOWTOKENGUID] DEFAULT (newid()) FOR [WorkflowTokenGUID]; GO
ALTER TABLE [dbo].[WFToken] ADD CONSTRAINT [DF_WFToken_WORKFLOWMAPGUID] DEFAULT (newid()) FOR [WorkflowMapGUID]; GO
ALTER TABLE [dbo].[WFToken] ADD CONSTRAINT [DF_WFWorkflowToken_ENTITYGUID] DEFAULT (newid()) FOR [EntityGUID]; GO
ALTER TABLE [dbo].[WFToken] ADD CONSTRAINT [DF_WFWorkflowToken_WORKFLOWSTEPGUID] DEFAULT (newid()) FOR [WorkflowStepGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFTransition ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFTransition] (
[TransitionGUID] uniqueidentifier NOT NULL,
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[WorkflowStepFromGUID] uniqueidentifier NOT NULL,
[WorkflowStepToGUID] uniqueidentifier NOT NULL,
[ConditionSetGUID] uniqueidentifier NOT NULL,
[EventPlanGUID] uniqueidentifier NOT NULL,
[Text] nvarchar(64) NOT NULL,
[PortFrom] int NOT NULL,
[PortTo] int NOT NULL,
[IsLoopback] bit NOT NULL,
PRIMARY KEY ([TransitionGUID])
);
CREATE NONCLUSTERED INDEX [IX_WFTransition_ByMap] ON [dbo].[WFTransition] ([WorkflowMapGUID]);
CREATE NONCLUSTERED INDEX [IX_WFTransition_ByStepFrom] ON [dbo].[WFTransition] ([WorkflowStepFromGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_WFTransition_ByFromTo] ON [dbo].[WFTransition] ([WorkflowStepFromGUID], [WorkflowStepToGUID], [IsLoopback]);
GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [FK_WFTransition_WFConditionSet] FOREIGN KEY ([ConditionSetGUID]) REFERENCES [dbo].[WFConditionSet] ([ConditionSetGUID]); GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [FK_WFTransition_WFEventPlan] FOREIGN KEY ([EventPlanGUID]) REFERENCES [dbo].[WFEventPlan] ([EventPlanGUID]); GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [FK_WFTransition_WFWorkflowStep_From] FOREIGN KEY ([WorkflowStepFromGUID]) REFERENCES [dbo].[WFWorkflowStep] ([WorkflowStepGUID]); GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [FK_WFTransition_WFWorkflowStep_To] FOREIGN KEY ([WorkflowStepToGUID]) REFERENCES [dbo].[WFWorkflowStep] ([WorkflowStepGUID]); GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_TRANSITIONGUID] DEFAULT (newid()) FOR [TransitionGUID]; GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_WORKFLOWMAPGUID] DEFAULT (newid()) FOR [WorkflowMapGUID]; GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_STEPFROMGUID] DEFAULT (newid()) FOR [WorkflowStepFromGUID]; GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_STEPTOGUID] DEFAULT (newid()) FOR [WorkflowStepToGUID]; GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_CONDITIONGUID] DEFAULT (newid()) FOR [ConditionSetGUID]; GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_CONDITIONALACTIONGUID] DEFAULT (newid()) FOR [EventPlanGUID]; GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_TEXT] DEFAULT ('') FOR [Text]; GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_PORTFROM] DEFAULT ((0)) FOR [PortFrom]; GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_PORTTO] DEFAULT ((0)) FOR [PortTo]; GO
ALTER TABLE [dbo].[WFTransition] ADD CONSTRAINT [DF_WFTransition_IsLoopback] DEFAULT ((0)) FOR [IsLoopback]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFWorkflowMap ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFWorkflowMap] (
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[IsLocked] bit NOT NULL,
[FolderGUID] uniqueidentifier NOT NULL,
[ReviewFolderGUID] uniqueidentifier NOT NULL,
[IsEmailIntegrationEnabled] bit NOT NULL,
[AssociatedReportGUID] uniqueidentifier NOT NULL,
[TimeInStepThreshold] int NOT NULL,
[IsCopiedWithPlan] bit NOT NULL,
[IsSkippedStepByAuthor] bit NOT NULL,
[IsSkippedStepBySubordinates] bit NOT NULL,
PRIMARY KEY ([WorkflowMapGUID])
);
GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF__WFWorkflo__IsSki__0F61AD3C] DEFAULT ((0)) FOR [IsSkippedStepBySubordinates]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF__WFWorkflo__IsSki__20CB6509] DEFAULT ((0)) FOR [IsSkippedStepByAuthor]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_IsCopiedWithPlan] DEFAULT ((1)) FOR [IsCopiedWithPlan]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_WORKFLOWMAPGUID] DEFAULT (newid()) FOR [WorkflowMapGUID]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_ISLOCKEDFORREFRESH] DEFAULT ((0)) FOR [IsLocked]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_FolderGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FolderGUID]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_ReviewFolderGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ReviewFolderGUID]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_IsEmailIntegrationEnabled] DEFAULT ((0)) FOR [IsEmailIntegrationEnabled]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_AssociatedReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssociatedReportGUID]; GO
ALTER TABLE [dbo].[WFWorkflowMap] ADD CONSTRAINT [DF_WFWorkflowMap_TimeInStepThreshold] DEFAULT ((0)) FOR [TimeInStepThreshold]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WFWorkflowStep ------------------
---------------------------------------------
CREATE TABLE [dbo].[WFWorkflowStep] (
[WorkflowStepGUID] uniqueidentifier NOT NULL,
[WorkflowMapGUID] uniqueidentifier NOT NULL,
[IsStart] bit NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(4000) NOT NULL,
[OnStartEventPlanGUID] uniqueidentifier NOT NULL,
[OnEndEventPlanGUID] uniqueidentifier NOT NULL,
[PositionX] float NOT NULL,
[PositionY] float NOT NULL,
[DisplayOrder] int NOT NULL,
[Type] int NOT NULL,
[IsHidden] bit NOT NULL,
[IsAdvancedCondition] bit NOT NULL,
[IsAdvancedStartEvent] bit NOT NULL,
[IsAdvancedEndEvent] bit NOT NULL,
[QualifyConditionSetGUID] uniqueidentifier NOT NULL,
[IsAdvancedQualification] bit NOT NULL,
[IsAdvancedLoopback] bit NOT NULL,
[IsHiddenInRouting] bit NOT NULL,
[Version] timestamp NOT NULL,
[ReviewerAccess] int NOT NULL,
[ReviewerExitAccess] int NOT NULL,
[AssociatedReportGUID] uniqueidentifier NOT NULL,
[Icon] int NOT NULL,
[ReminderDaysThreshold] int NOT NULL,
PRIMARY KEY ([WorkflowStepGUID])
);
CREATE NONCLUSTERED INDEX [IX_WFWorkflowStep_ByMap] ON [dbo].[WFWorkflowStep] ([WorkflowMapGUID]);
CREATE NONCLUSTERED INDEX [IX_WFWorkflowStep_DisplayOrder] ON [dbo].[WFWorkflowStep] ([DisplayOrder]);
GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [FK_WFWorkflowStep_WFEventPlan_End] FOREIGN KEY ([OnEndEventPlanGUID]) REFERENCES [dbo].[WFEventPlan] ([EventPlanGUID]); GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [FK_WFWorkflowStep_WFEventPlan_Start] FOREIGN KEY ([OnStartEventPlanGUID]) REFERENCES [dbo].[WFEventPlan] ([EventPlanGUID]); GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_IconIndex] DEFAULT ((0)) FOR [Icon]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_ReminderDaysThreshold] DEFAULT ((0)) FOR [ReminderDaysThreshold]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_ReviewerAccess] DEFAULT ((-1)) FOR [ReviewerAccess]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_IsHiddenInRouting] DEFAULT ((0)) FOR [IsHiddenInRouting]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_AssociatedReportGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AssociatedReportGUID]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_WorkflowStepGUID] DEFAULT (newid()) FOR [WorkflowStepGUID]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_WORKFLOWGUID] DEFAULT (newid()) FOR [WorkflowMapGUID]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_IsStart] DEFAULT ((0)) FOR [IsStart]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_ONSTARTEVENTGUID] DEFAULT (newid()) FOR [OnStartEventPlanGUID]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_ONENDEVENTGUID] DEFAULT (newid()) FOR [OnEndEventPlanGUID]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_POSITIONX] DEFAULT ((0)) FOR [PositionX]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_POSITIONY] DEFAULT ((0)) FOR [PositionY]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_DISPLAYORDER] DEFAULT ((0)) FOR [DisplayOrder]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_TYPE] DEFAULT ((0)) FOR [Type]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_ISHIDDEN] DEFAULT ((0)) FOR [IsHidden]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_ISADVANCEDCONDITION] DEFAULT ((1)) FOR [IsAdvancedCondition]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_ISADVANCEDSTARTEVENT] DEFAULT ((1)) FOR [IsAdvancedStartEvent]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_ISADVANCEDENDEVENT] DEFAULT ((1)) FOR [IsAdvancedEndEvent]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_QualifyConditionSetGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [QualifyConditionSetGUID]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_IsAdvancedQualification] DEFAULT ((1)) FOR [IsAdvancedQualification]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_IsAdvancedLoopback] DEFAULT ((0)) FOR [IsAdvancedLoopback]; GO
ALTER TABLE [dbo].[WFWorkflowStep] ADD CONSTRAINT [DF_WFWorkflowStep_ReviewerExitAccess] DEFAULT ((-1)) FOR [ReviewerExitAccess]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WorkerLog ------------------
---------------------------------------------
CREATE TABLE [dbo].[WorkerLog] (
[WorkerID] uniqueidentifier NOT NULL,
[WorkerGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(150) NOT NULL,
[IPAddress] nvarchar(50) NOT NULL,
[CreationTime] datetime NOT NULL,
[ServerName] nvarchar(150) NOT NULL,
[StopTime] datetime NULL,
[TaskEngineVersion] varchar(100) NULL,
PRIMARY KEY ([WorkerID])
);
GO
ALTER TABLE [dbo].[WorkerLog] ADD CONSTRAINT [DF_WorkerLog_StopTime] DEFAULT ('1/1/1900') FOR [StopTime]; GO
ALTER TABLE [dbo].[WorkerLog] ADD CONSTRAINT [DF_WorkerLog_TaskEngineVersion] DEFAULT ('') FOR [TaskEngineVersion]; GO
ALTER TABLE [dbo].[WorkerLog] ADD CONSTRAINT [DF_WorkerLog_WorkerID] DEFAULT (newid()) FOR [WorkerID]; GO
ALTER TABLE [dbo].[WorkerLog] ADD CONSTRAINT [DF_dbo.WorkerLog_WorkerGUID] DEFAULT (newid()) FOR [WorkerGUID]; GO
ALTER TABLE [dbo].[WorkerLog] ADD CONSTRAINT [DF_dbo.WorkerLog_WorkerName] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[WorkerLog] ADD CONSTRAINT [DF_dbo.WorkerLog_IPAddress] DEFAULT ('0.0.0.0') FOR [IPAddress]; GO
ALTER TABLE [dbo].[WorkerLog] ADD CONSTRAINT [DF_dbo.WorkerLog_CreationTime] DEFAULT ('1/1/1900') FOR [CreationTime]; GO
ALTER TABLE [dbo].[WorkerLog] ADD CONSTRAINT [DF_WorkerLog_ServerName] DEFAULT ('') FOR [ServerName]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WorkflowAttachModelFailure ------------------
---------------------------------------------
CREATE TABLE [dbo].[WorkflowAttachModelFailure] (
[MemberGUID] uniqueidentifier NOT NULL,
[PlanGUID] uniqueidentifier NOT NULL,
[ErrorLogGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([MemberGUID])
);
GO
ALTER TABLE [dbo].[WorkflowAttachModelFailure] ADD CONSTRAINT [DF_WorkflowAttachModelFailure_MemberGUID] DEFAULT (newid()) FOR [MemberGUID]; GO
ALTER TABLE [dbo].[WorkflowAttachModelFailure] ADD CONSTRAINT [DF_WorkflowAttachModelFailure_PlanGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanGUID]; GO
ALTER TABLE [dbo].[WorkflowAttachModelFailure] ADD CONSTRAINT [DF__WorkflowA__Error__47CD59C9] DEFAULT (newid()) FOR [ErrorLogGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.Workspace ------------------
---------------------------------------------
CREATE TABLE [dbo].[Workspace] (
[WorkspaceGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(64) NOT NULL,
[Description] nvarchar(450) NOT NULL,
[IsPanelEnabled] bit NOT NULL,
[CustomMenuGUID] uniqueidentifier NOT NULL,
[CustomToolbarGUID] uniqueidentifier NOT NULL,
[CustomContextMenuGUID] uniqueidentifier NOT NULL,
[DefaultEntityViewGUID] uniqueidentifier NOT NULL,
[DefaultPlanTypeGUID] uniqueidentifier NOT NULL,
[FilterEntityViewGUID] uniqueidentifier NOT NULL,
[DefaultFormDefGUID] uniqueidentifier NOT NULL,
[ProviderType] int NOT NULL,
[IsLoadingHierarchyMembers] bit NOT NULL,
[IsWorkflowColumnsEnabled] bit NOT NULL,
[ModuleGUID] uniqueidentifier NOT NULL,
[IsModuleDefault] bit NOT NULL,
[HelpID] nvarchar(50) NOT NULL,
PRIMARY KEY ([WorkspaceGUID])
);
GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_ProviderType] DEFAULT ((0)) FOR [ProviderType]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_IsLoadingHierarchyMembers] DEFAULT ((0)) FOR [IsLoadingHierarchyMembers]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_DefaultFormDefGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultFormDefGUID]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF__Workspace__IsMod__1EAB16DB] DEFAULT ((0)) FOR [IsModuleDefault]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_IsWorkflowColumnsEnabled] DEFAULT ((0)) FOR [IsWorkflowColumnsEnabled]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF__Workspace__Modul__65F025BE] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModuleGUID]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF__Workspace__HelpI__70701636] DEFAULT ('') FOR [HelpID]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_WORKSPACEGUID] DEFAULT (newid()) FOR [WorkspaceGUID]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_NAME] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_DESCRIPTION] DEFAULT ('') FOR [Description]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_ISPANELENABLED] DEFAULT ((0)) FOR [IsPanelEnabled]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_CUSTOMMENUGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CustomMenuGUID]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_CUSTOMTOOLBARGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CustomToolbarGUID]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_CUSTOMCONTEXTMENUGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [CustomContextMenuGUID]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_DefaultEntityViewGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultEntityViewGUID]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_DefaultPlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultPlanTypeGUID]; GO
ALTER TABLE [dbo].[Workspace] ADD CONSTRAINT [DF_Workspace_FilterEntityViewGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FilterEntityViewGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WorkspaceContentLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[WorkspaceContentLink] (
[WorkspaceContentLinkGUID] uniqueidentifier NOT NULL,
[WorkspaceGUID] uniqueidentifier NOT NULL,
[ContentGUID] uniqueidentifier NOT NULL,
[ContentType] int NOT NULL,
[DisplayOrder] int NOT NULL,
PRIMARY KEY ([WorkspaceContentLinkGUID])
);
GO
ALTER TABLE [dbo].[WorkspaceContentLink] ADD CONSTRAINT [FK_WorkspaceContentLink_Workspace] FOREIGN KEY ([WorkspaceGUID]) REFERENCES [dbo].[Workspace] ([WorkspaceGUID]); GO
ALTER TABLE [dbo].[WorkspaceContentLink] ADD CONSTRAINT [DF_WorkspaceContentLink_WORKSPACECONTENTLINKGUID] DEFAULT (newid()) FOR [WorkspaceContentLinkGUID]; GO
ALTER TABLE [dbo].[WorkspaceContentLink] ADD CONSTRAINT [DF_WorkspaceContentLink_WORKSPACEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkspaceGUID]; GO
ALTER TABLE [dbo].[WorkspaceContentLink] ADD CONSTRAINT [DF_WorkspaceContentLink_CONTENTGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ContentGUID]; GO
ALTER TABLE [dbo].[WorkspaceContentLink] ADD CONSTRAINT [DF_WorkspaceContentLink_CONTENTTYPE] DEFAULT ((0)) FOR [ContentType]; GO
ALTER TABLE [dbo].[WorkspaceContentLink] ADD CONSTRAINT [DF_WorkspaceContentLink_DisplayOrder] DEFAULT ((0)) FOR [DisplayOrder]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WorkspaceDimensionLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[WorkspaceDimensionLink] (
[WorkspaceDimensionLinkGUID] uniqueidentifier NOT NULL,
[WorkspaceGUID] uniqueidentifier NOT NULL,
[DimensionGUID] uniqueidentifier NOT NULL,
[HierarchyGUID] uniqueidentifier NOT NULL,
[IsDefault] bit NOT NULL,
PRIMARY KEY ([WorkspaceDimensionLinkGUID])
);
GO
ALTER TABLE [dbo].[WorkspaceDimensionLink] ADD CONSTRAINT [FK_WorkspaceDimensionLink_Workspace] FOREIGN KEY ([WorkspaceGUID]) REFERENCES [dbo].[Workspace] ([WorkspaceGUID]); GO
ALTER TABLE [dbo].[WorkspaceDimensionLink] ADD CONSTRAINT [DF_WorkspaceDimensionLink_HierarchyGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [HierarchyGUID]; GO
ALTER TABLE [dbo].[WorkspaceDimensionLink] ADD CONSTRAINT [DF_WorkspaceDimensionLink_IsDefault] DEFAULT ((0)) FOR [IsDefault]; GO
ALTER TABLE [dbo].[WorkspaceDimensionLink] ADD CONSTRAINT [DF_WorkspaceDimensionLink_WorkspaceDimensionLinkGUID] DEFAULT (newid()) FOR [WorkspaceDimensionLinkGUID]; GO
ALTER TABLE [dbo].[WorkspaceDimensionLink] ADD CONSTRAINT [DF_WorkspaceDimensionLink_WorkspaceGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkspaceGUID]; GO
ALTER TABLE [dbo].[WorkspaceDimensionLink] ADD CONSTRAINT [DF_WorkspaceDimensionLink_DimensionGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DimensionGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WorkspaceEntityViewLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[WorkspaceEntityViewLink] (
[WorkspaceEntityViewLinkGUID] uniqueidentifier NOT NULL,
[WorkspaceGUID] uniqueidentifier NOT NULL,
[EntityViewGUID] uniqueidentifier NOT NULL,
PRIMARY KEY ([WorkspaceEntityViewLinkGUID])
);
GO
ALTER TABLE [dbo].[WorkspaceEntityViewLink] ADD CONSTRAINT [FK_WorkspaceEntityViewLink_Workspace] FOREIGN KEY ([WorkspaceGUID]) REFERENCES [dbo].[Workspace] ([WorkspaceGUID]); GO
ALTER TABLE [dbo].[WorkspaceEntityViewLink] ADD CONSTRAINT [DF_WorkspaceEntityViewLink_WorkspaceEntityViewLinkGUID] DEFAULT (newid()) FOR [WorkspaceEntityViewLinkGUID]; GO
---------------------------------------------
---------------------------------------------
-- dbo.WorkspacePlanTypeLink ------------------
---------------------------------------------
CREATE TABLE [dbo].[WorkspacePlanTypeLink] (
[WorkspacePlanTypeLinkGUID] uniqueidentifier NOT NULL,
[WorkspaceGUID] uniqueidentifier NOT NULL,
[GridTemplateGUID] uniqueidentifier NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[IsDefault] bit NOT NULL,
[FormDefGUID] uniqueidentifier NOT NULL,
[HiddenToolIDList] nvarchar(max) NOT NULL,
[IsEnabled] bit NOT NULL,
PRIMARY KEY ([WorkspacePlanTypeLinkGUID])
);
GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [FK_WorkspaceGridTemplateLink_GridTemplate] FOREIGN KEY ([GridTemplateGUID]) REFERENCES [dbo].[GridTemplate] ([GRIDTEMPLATEGUID]); GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [FK_WorkspaceGridTemplateLink_PlanType] FOREIGN KEY ([PlanTypeGUID]) REFERENCES [dbo].[PlanType] ([PlanTypeGUID]); GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [FK_WorkspaceGridTemplateLink_Workspace] FOREIGN KEY ([WorkspaceGUID]) REFERENCES [dbo].[Workspace] ([WorkspaceGUID]); GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [DF_WorkspaceGridTemplateLink_WorkspaceGridTemplateLinkGUID] DEFAULT (newid()) FOR [WorkspacePlanTypeLinkGUID]; GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [DF_WorkspaceGridTemplateLink_WorkspaceGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [WorkspaceGUID]; GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [DF_WorkspaceGridTemplateLink_GridTemplateGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [GridTemplateGUID]; GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [DF_WorkspaceGridTemplateLink_PlanTypeGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [DF_WorkspacePlanTypeLink_IsDefault] DEFAULT ((0)) FOR [IsDefault]; GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [DF_WorkspacePlanTypeLink_FormDefGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FormDefGUID]; GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [DF_WorkspacePlanTypeLink_HiddenToolIDList] DEFAULT ('') FOR [HiddenToolIDList]; GO
ALTER TABLE [dbo].[WorkspacePlanTypeLink] ADD CONSTRAINT [DF__Workspace__IsEna__76206499] DEFAULT ((1)) FOR [IsEnabled]; GO
---------------------------------------------
---------------------------------------------
-- dbo.XPlan ------------------
---------------------------------------------
CREATE TABLE [dbo].[XPlan] (
[PlanGUID] uniqueidentifier NOT NULL,
[Name] nvarchar(450) NOT NULL,
[ParentEntityGUID] uniqueidentifier NOT NULL,
[DefaultFormDefGUID] uniqueidentifier NOT NULL,
[DateCreated] datetime NOT NULL,
[LastModelTemplateGroupGUID] uniqueidentifier NOT NULL,
[ModelDatasetGUID] uniqueidentifier NOT NULL,
[ModelTemplateGUID] uniqueidentifier NOT NULL,
[ScoreMemberGUID] uniqueidentifier NOT NULL,
[IsDeletedPlan] bit NOT NULL,
[IsConsolidation] bit NOT NULL,
[IsModelRefreshEnabled] bit NOT NULL,
[PlanTypeGUID] uniqueidentifier NOT NULL,
[PlanID] int NOT NULL,
[CachedLootID] nvarchar(128) NOT NULL,
[AuthorUserGUID] uniqueidentifier NOT NULL,
[IsArchived] bit NOT NULL,
[IsFinancialsLocked] bit NOT NULL,
[IsModelWorkbookCached] bit NOT NULL,
[CachedWorkflowStep] nvarchar(400) NULL,
[CachedWorkflowStepGUIDsCSV] nvarchar(800) NULL,
[LastModifiedFormDate] datetime NOT NULL,
[LastModifiedFormUserGUID] uniqueidentifier NOT NULL,
[LastModifiedModelDate] datetime NOT NULL,
[LastModifiedModelUserGUID] uniqueidentifier NOT NULL,
[ModelMemoryHit] int NOT NULL,
[ModelFileCacheHit] int NOT NULL,
[ModelDatabaseHit] int NOT NULL,
[LastModelCacheInvalidateReason] nvarchar(100) NOT NULL,
[LastRefreshModelDate] datetime NOT NULL,
[FillinTemplateGUID] uniqueidentifier NOT NULL,
[LastModelCacheInvalidateDate] datetime NOT NULL,
[AuthorFullName] nvarchar(256) NOT NULL,
[LastModifiedFormUserName] nvarchar(256) NOT NULL,
[LastModifiedModelUserName] nvarchar(256) NOT NULL,
[IsHiddenFromWorkflowNotification] bit NOT NULL,
[IsCacheable] bit NOT NULL,
[IsSuspended] bit NOT NULL,
[SuspendedByUserGUID] uniqueidentifier NOT NULL,
[SuspendedByUserName] nvarchar(256) NOT NULL,
[DateSuspended] datetime NOT NULL,
[SuspensionModeSource] nvarchar(max) NOT NULL,
PRIMARY KEY ([PlanGUID])
);
CREATE NONCLUSTERED INDEX [idx_XPlan_PlanGUID_With_Name] ON [dbo].[XPlan] ([PlanGUID]) INCLUDE ([Name]);
CREATE NONCLUSTERED INDEX [NCNU_PlanTypeGUID] ON [dbo].[XPlan] ([PlanTypeGUID]);
CREATE UNIQUE NONCLUSTERED INDEX [IX_XPlan_IsDeleted] ON [dbo].[XPlan] ([IsDeletedPlan], [PlanGUID], [PlanTypeGUID]) INCLUDE ([DateCreated]);
CREATE NONCLUSTERED INDEX [IDX_XPlan_CachedLooID_INCL_PlanGUID] ON [dbo].[XPlan] ([CachedLootID]) INCLUDE ([PlanGUID]);
GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_SuspendedByUserName] DEFAULT ('') FOR [SuspendedByUserName]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__AuthorFul__098A6F03] DEFAULT ('') FOR [AuthorFullName]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__FillinTem__1495D444] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [FillinTemplateGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_CachedLootID] DEFAULT ('') FOR [CachedLootID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__IsHiddenF__16DD75DC] DEFAULT ((0)) FOR [IsHiddenFromWorkflowNotification]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_LastRefreshModelDate] DEFAULT (getdate()) FOR [LastRefreshModelDate]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_AuthorUserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [AuthorUserGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_LastModelCacheInvalidateDate] DEFAULT (getdate()) FOR [LastModelCacheInvalidateDate]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_LastModifiedFormDate] DEFAULT (getdate()) FOR [LastModifiedFormDate]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_CachedWorkflowStep] DEFAULT ('') FOR [CachedWorkflowStep]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_LastModifiedModelDate] DEFAULT (getdate()) FOR [LastModifiedModelDate]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_LastModifiedFormUserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LastModifiedFormUserGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_SuspendedByUserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [SuspendedByUserGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__IsModelWo__3A79BD92] DEFAULT ((0)) FOR [IsModelWorkbookCached]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__LastModif__48BBBCD7] DEFAULT ('') FOR [LastModifiedFormUserName]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__LastModif__49AFE110] DEFAULT ('') FOR [LastModifiedModelUserName]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_LastModifiedModelUserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LastModifiedModelUserGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_Entity_ENTITYGUID] DEFAULT (newid()) FOR [PlanGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_Name] DEFAULT ('') FOR [Name]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_Entity_PARENTENTITYGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ParentEntityGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_Entity_DEFAULTFORMDEFGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [DefaultFormDefGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_Entity_DATECREATED] DEFAULT (getdate()) FOR [DateCreated]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_Entity_LASTMODELDATASETGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [LastModelTemplateGroupGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_Entity_MODELDATASETGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelDatasetGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_Entity_MODELTEMPLATEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModelTemplateGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_LastModelCacheInvalidateReason] DEFAULT ('') FOR [LastModelCacheInvalidateReason]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_PlaceholderMemberGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ScoreMemberGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_ISDELETED] DEFAULT ((0)) FOR [IsDeletedPlan]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_ISCONSOLIDATION] DEFAULT ((0)) FOR [IsConsolidation]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_IsModelRefreshEnabled] DEFAULT ((1)) FOR [IsModelRefreshEnabled]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_PLANTYPEGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [PlanTypeGUID]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__IsCacheab__5C1D6E18] DEFAULT ((1)) FOR [IsCacheable]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_IsArchived] DEFAULT ((0)) FOR [IsArchived]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__IsFinanci__66056A50] DEFAULT ((0)) FOR [IsFinancialsLocked]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__CachedWor__6D6ABF73] DEFAULT ('') FOR [CachedWorkflowStepGUIDsCSV]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_SuspensionModeSource] DEFAULT ('') FOR [SuspensionModeSource]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_DateSuspended] DEFAULT (getdate()) FOR [DateSuspended]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__ModelMemo__74D0AE23] DEFAULT ((0)) FOR [ModelMemoryHit]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__ModelFile__75C4D25C] DEFAULT ((0)) FOR [ModelFileCacheHit]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF__XPlan__ModelData__76B8F695] DEFAULT ((0)) FOR [ModelDatabaseHit]; GO
ALTER TABLE [dbo].[XPlan] ADD CONSTRAINT [DF_XPlan_IsSuspended] DEFAULT ((0)) FOR [IsSuspended]; GO
---------------------------------------------
---------------------------------------------
-- dbo._data_Fairview_RS_2_d4b011b67c6e4a0ca94ee153867d9e42_ ------------------
---------------------------------------------
CREATE TABLE [dbo].[_data_Fairview_RS_2_d4b011b67c6e4a0ca94ee153867d9e42_] (
[EncounterID] bigint NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo._data_Rule_Set_Measure_Child_663d423c1a234dea8fba2e3c429437d1_ ------------------
---------------------------------------------
CREATE TABLE [dbo].[_data_Rule_Set_Measure_Child_663d423c1a234dea8fba2e3c429437d1_] (
[EncounterID] bigint NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo._data_Rule_Set_Measure_Less_Than_And_Less_Than_Equal_Child_c279feaa6d9b4253ab44871e1dba1480_ ------------------
---------------------------------------------
CREATE TABLE [dbo].[_data_Rule_Set_Measure_Less_Than_And_Less_Than_Equal_Child_c279feaa6d9b4253ab44871e1dba1480_] (
[EncounterID] bigint NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo._data_SingleExclude_ExcludesAllRows_ExpectFalse_eb1eab34ef0041c5b7e3ddcebd30beaa_ ------------------
---------------------------------------------
CREATE TABLE [dbo].[_data_SingleExclude_ExcludesAllRows_ExpectFalse_eb1eab34ef0041c5b7e3ddcebd30beaa_] (
[EncounterID] bigint NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.aaVersion ------------------
---------------------------------------------
CREATE TABLE [dbo].[aaVersion] (
[id] int NOT NULL,
[Name] nvarchar(256) NOT NULL,
[Value] nvarchar(4000) NOT NULL,
[ModifiedDate] smalldatetime NOT NULL,
PRIMARY KEY ([id])
);
GO
ALTER TABLE [dbo].[aaVersion] ADD CONSTRAINT [DF_aaVersion_New_Purpose] DEFAULT ('Not specified') FOR [Name]; GO
ALTER TABLE [dbo].[aaVersion] ADD CONSTRAINT [DF_aaVersion__New_ExpirationDate] DEFAULT ('Not specified') FOR [Value]; GO
ALTER TABLE [dbo].[aaVersion] ADD CONSTRAINT [DF_aaVersion_New_LastSync] DEFAULT (getdate()) FOR [ModifiedDate]; GO
---------------------------------------------
---------------------------------------------
-- dbo.dtproperties ------------------
---------------------------------------------
CREATE TABLE [dbo].[dtproperties] (
[id] int NOT NULL,
[objectid] int NULL,
[property] varchar(64) NOT NULL,
[value] varchar(255) NULL,
[uvalue] nvarchar(255) NULL,
[lvalue] image NULL,
[version] int NOT NULL,
PRIMARY KEY ([id], [property])
);
GO
ALTER TABLE [dbo].[dtproperties] ADD CONSTRAINT [DF__dtpropert__versi__77BFCB91] DEFAULT (0) FOR [version]; GO
---------------------------------------------
---------------------------------------------
-- dbo.filterMemberCsvBkp ------------------
---------------------------------------------
CREATE TABLE [dbo].[filterMemberCsvBkp] (
[filtermembercsvCopy] nvarchar(max) NOT NULL,
[ClientReportSectionAttributeGUID] uniqueidentifier NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.intClientComment ------------------
---------------------------------------------
CREATE TABLE [dbo].[intClientComment] (
[ClientCommentGUID] uniqueidentifier NOT NULL,
[DataInterfaceMapID] uniqueidentifier NOT NULL,
[ClientComment] nvarchar(2000) NOT NULL,
[ModifiedUserGUID] uniqueidentifier NOT NULL,
[DateModifiedUtc] datetime NOT NULL,
PRIMARY KEY ([ClientCommentGUID])
);
GO
ALTER TABLE [dbo].[intClientComment] ADD CONSTRAINT [FK_IntClientComment_DataInterfaceMapID] FOREIGN KEY ([DataInterfaceMapID]) REFERENCES [dbo].[IntDataInterfaceMap] ([DataInterfaceMapID]); GO
ALTER TABLE [dbo].[intClientComment] ADD CONSTRAINT [DF__intClient__DateM__3B5EF7F1] DEFAULT (getutcdate()) FOR [DateModifiedUtc]; GO
ALTER TABLE [dbo].[intClientComment] ADD CONSTRAINT [DF_IntClientComment_ModifiedUserGUID] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ModifiedUserGUID]; GO
ALTER TABLE [dbo].[intClientComment] ADD CONSTRAINT [DF_intClientComment_ClientCommentGUID] DEFAULT (newid()) FOR [ClientCommentGUID]; GO
ALTER TABLE [dbo].[intClientComment] ADD CONSTRAINT [DF_IntClientComment_ClientComment] DEFAULT ('') FOR [ClientComment]; GO
---------------------------------------------
---------------------------------------------
-- dbo.intSFTPConnection ------------------
---------------------------------------------
CREATE TABLE [dbo].[intSFTPConnection] (
[SFTPConnectionGUID] uniqueidentifier NOT NULL,
[ConfigID] uniqueidentifier NOT NULL,
[Server] nvarchar(400) NOT NULL,
[Port] nvarchar(400) NOT NULL,
[Directory] nvarchar(400) NOT NULL,
[UserName] nvarchar(400) NOT NULL,
[Password] nvarchar(400) NOT NULL,
[IsArchiveOnImport] bit NOT NULL,
[IsDeleteFileOnImport] bit NOT NULL,
[IsEncrypted] bit NOT NULL,
[ArchiveDirectory] nvarchar(400) NOT NULL,
PRIMARY KEY ([SFTPConnectionGUID])
);
GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__SFTPC__63D2D322] DEFAULT (newid()) FOR [SFTPConnectionGUID]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__Confi__64C6F75B] DEFAULT ('00000000-0000-0000-0000-000000000000') FOR [ConfigID]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__Serve__65BB1B94] DEFAULT ('') FOR [Server]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCon__Port__66AF3FCD] DEFAULT ('') FOR [Port]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__Direc__67A36406] DEFAULT ('') FOR [Directory]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__UserN__6897883F] DEFAULT ('') FOR [UserName]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__Passw__698BAC78] DEFAULT ('') FOR [Password]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__IsArc__6A7FD0B1] DEFAULT ((1)) FOR [IsArchiveOnImport]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__IsDel__6B73F4EA] DEFAULT ((1)) FOR [IsDeleteFileOnImport]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__IsEnc__6C681923] DEFAULT ((0)) FOR [IsEncrypted]; GO
ALTER TABLE [dbo].[intSFTPConnection] ADD CONSTRAINT [DF__intSFTPCo__Archi__6D5C3D5C] DEFAULT ('') FOR [ArchiveDirectory]; GO
---------------------------------------------
---------------------------------------------
-- dbo.sysdiagrams ------------------
---------------------------------------------
CREATE TABLE [dbo].[sysdiagrams] (
[name] nvarchar(128) NOT NULL,
[principal_id] int NOT NULL,
[diagram_id] int NOT NULL,
[version] int NULL,
[definition] varbinary(max) NULL,
PRIMARY KEY ([diagram_id])
);
CREATE UNIQUE NONCLUSTERED INDEX [UK_principal_name] ON [dbo].[sysdiagrams] ([principal_id], [name]);
GO
---------------------------------------------
---------------------------------------------
-- dbo.tempcosts ------------------
---------------------------------------------
CREATE TABLE [dbo].[tempcosts] (
[FiscalYearID] smallint NOT NULL,
[Name] nvarchar(100) NOT NULL,
[DepartmentCode] nvarchar(100) NOT NULL,
[ChargeCode] nvarchar(100) NOT NULL,
[UnitCost] numeric NOT NULL,
[Volume] numeric NULL,
[TotalCost] numeric NULL,
[CostingResultID] int NOT NULL,
[FixeddirectUnitCost] numeric NOT NULL,
[FixedIndirectUnitCost] numeric NOT NULL,
[VariableDirectUnitCost] numeric NOT NULL,
[VariableIndirectUnitCost] numeric NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- dbo.tempdssDimDRG ------------------
---------------------------------------------
CREATE TABLE [dbo].[tempdssDimDRG] (
[DRGID] int NOT NULL,
[DRGCode] varchar(10) NOT NULL,
[DescriptionShort] varchar(100) NOT NULL,
[Description] varchar(200) NOT NULL,
[MemberGUID] uniqueidentifier NOT NULL,
[ServiceLineID] int NOT NULL,
[HistoryItemGUID] uniqueidentifier NOT NULL,
[MDCID] int NOT NULL,
[Type] nvarchar(25) NOT NULL,
[FinalRulePostAcuteDRG] nvarchar(25) NOT NULL,
[ICD9Inclusion] nvarchar(50) NOT NULL,
[TransactionID] int NULL,
[DRGSchema] nvarchar(100) NOT NULL,
[ImportName] nvarchar(100) NOT NULL
);
GO
---------------------------------------------
---------------------------------------------
-- VIEWS
---------------------------------------------
-- dbo.SysViewObjects
CREATE VIEW [dbo].[SysViewObjects]
AS
select
S.name + '.' + O.name as Expression,
S.name as SchemaName,
O.name as Objectname,
case when O.type_desc = 'VIEW' then CAST(1 as bit) else CAST(0 as bit) end as IsView
from sys.objects O
inner join sys.schemas S on S.schema_id = O.schema_id
where O.type_desc = 'USER_TABLE' OR O.type_desc = 'VIEW'
GO
---------------------------------------------
-- dbo.ViewSysTables
CREATE view [dbo].[ViewSysTables]
AS
select * from viewSysAllObjects where type_desc = 'USER_TABLE'
GO
---------------------------------------------
-- dbo.ViewSysTriggers
CREATE VIEW [dbo].[ViewSysTriggers]
AS
select
T.object_id as [TriggerID],
T.name as Name,
S.name as SchemaName,
OB.name as ObjectName,
T.create_date as CreationDate,
case when OB.type_desc = 'VIEW' then 1 else 0 end as IsViewTrigger,
M.definition,
case when M.definition like '%INSTEAD OF%' then 1 else 0 end as [IsInsteadOfTrigger]
from sys.triggers T
inner join sys.objects O on O.object_id = T.object_id
inner join sys.schemas S on S.schema_id = O.schema_id
inner join sys.objects OB on OB.object_id = O.parent_object_id
inner join sys.sql_modules M on M.object_id = T.object_id
GO
---------------------------------------------
-- dbo.ViewSysViews
CREATE VIEW [dbo].[ViewSysViews]
AS
select
O.*,
M.definition as [ViewDefinition]
from viewSysAllObjects O
inner join sys.all_sql_modules M on M.object_id = O.ObjectID
where O.type_desc = 'VIEW'
AND SchemaName <> 'sys' AND SchemaName <> 'INFORMATION_SCHEMA'
GO
---------------------------------------------
-- dbo.viewAMAssumptionView
CREATE view dbo.viewAMAssumptionView
as
SELECT [AssumptionViewGUID]
,[AssumptionGroupGUID]
,[Name]
,[ColumnWidths]
,[AssumptionJoinDataGUID]
,[FolderGUID]
,[IsDistributionModeActive]
,cast([DistributionInfo] as nvarchar(max)) as DistributionInfo
,[ProviderGUID]
,[CreatedDate]
,[CreatedBy]
,[LastUsedDate]
FROM [dbo].[AMAssumptionView]
GO
---------------------------------------------
-- dbo.viewActionLog
--Forward
create view viewActionLog
as
select
A.RowID,
A.Action,
A.SubAction,
A.Details,
A.Username,
A.DateTimeStamp,
A.Duration,
A.TokenGUID,
MAX(D.Version) as Version
from
ActionLog A
inner join viewUpgradeDate D on D.UpgradeDate < A.DateTimeStamp
group by
A.RowID,
A.Action,
A.SubAction,
A.Details,
A.Username,
A.DateTimeStamp,
A.Duration,
A.TokenGUID
GO
---------------------------------------------
-- dbo.viewActionLogSummary
CREATE view viewActionLogSummary as
select
YEAR(DateTimeStamp) as Year,
MONTH(DateTimeStamp) as Month,
DAY(DateTimeStamp) as Day,
Action,
SubAction,
SUM(Duration) as SumDuration,
avg(Duration) as AvgDuration,
Min(Duration) as MinDuration,
Max(Duration) as MaxDuration,
stdev(Duration) as StdevDuration,
COUNT(*) as Count
from ActionLog
group by YEAR(DateTimeStamp) , MONTH(DateTimeStamp) ,DAY(DateTimeStamp) , Action, SubAction
GO
---------------------------------------------
-- dbo.viewCMBucket
--Forward
CREATE view [dbo].[viewCMBucket]
as
-- hack default member required for foreign key to work in score config tool
Select
'00000000-0000-0000-0000-000000000000' as MemberGUID,
'00000000-0000-0000-0000-000000000000' as CategoryGUID,
'Not Specified' as Name,
'Not Specified' as Category
union
SELECT
B.BucketGUID As MemberGUID,
B.CategoryGUID,
B.Name,
C.Name As Category
FROM
CMBucket B
INNER JOIN
CMCategory C ON C.CategoryGUID = B.CategoryGUID
GO
---------------------------------------------
-- dbo.viewCMMetric
CREATE view [dbo].[viewCMMetric]
AS
SELECT
CM.*,
CM.MetricGUID As MemberGUID, CM.Name As Metric, cast(0 as bit) as IsInternal
FROM
CMMetric CM with (readuncommitted)
GO
---------------------------------------------
-- dbo.viewCMMetricWithFramework
CREATE view [dbo].[viewCMMetricWithFramework]
AS
SELECT
CM.MetricGUID As MemberGUID, CM.MetricGUID As MetricGUID, CM.Name As Name,
CM.Name As Metric, CM.MetricCode As MetricCode, CM.IsAggregable, CM.ToleranceValue, CM.TolerancePercent, CM.IsInverted, CM.FormatString, CM.DisplayOrder, cast(0 as bit) as IsInternal,
COALESCE(VFW.FrameworkID, '0') As FrameworkID,
COALESCE(VFW.Framework, 'Not Specified') As Framework,
COALESCE(VFW.FrameworkSchemaName, 'Not Specified') As FrameworkSchema
FROM
CMMetric CM with (readuncommitted)
LEFT JOIN CMMetricFramework FW with (readuncommitted) ON FW.MetricGUID = CM.MetricGUID
LEFT JOIN viewFramework VFW with (readuncommitted) ON VFW.FrameworkID = FW.FrameworkID
GO
---------------------------------------------
-- dbo.viewCMSampleTableMetricLinks
CREATE view dbo.viewCMSampleTableMetricLinks AS
select ML.*, M.Name from CMSampleTableMetricLink ML
inner join CMMetric M on M.MetricGUID = ML.MetricGUID
GO
---------------------------------------------
-- dbo.viewCurrentUsers
CREATE VIEW [dbo].[viewCurrentUsers] AS
SELECT cu.TokenGUID, cu.IPAddress, up.UserName, up.NameFirst, up.NameLast, up.UserGUID, up.PhoneNumber, cu.IdentityServerSessionId, cu.LoginStampUtc, cu.LastActionStampUtc,
CASE WHEN LastActionStampUtc > GETUTCDATE() THEN 0 ELSE DATEDIFF(MI, LastActionStampUtc, GETUTCDATE()) END AS inactiveMinutes
FROM CurrentUser cu LEFT JOIN UserProfile up
ON cu.UserGUID = up.UserGUID
GO
---------------------------------------------
-- dbo.viewCustomActionDependencies
CREATE view [dbo].[viewCustomActionDependencies]
as
select
'Workflow' as ReferrerType,
WFM.Name as ReferrerName,
CA.Description as ActionName,
WFM.WorkflowMapGUID as ReferrerGUID,
CA.ActionGUID
from
CustomAction CA
inner join WFEventPlanStatement EPS on EPS.StatementGUID = CA.ActionGUID
inner join WFEventPlan EP on EP.EventPlanGUID = EPS.EventPlanGUID
inner join WFWorkflowStep WFS on WFS.OnStartEventPlanGUID = EP.EventPlanGUID or WFS.OnEndEventPlanGUID = EPS.EventPlanGUID
inner join WFWorkflowMap WFM on WFM.WorkflowMapGUID = WFS.WorkflowMapGUID
union all
select
'Custom Menu' as ReferrerType,
CM.Name as ReferrerName,
CA.Description as ActionName,
CM.CustomMenuGUID as ReferrerGUID,
CA.ActionGUID
from
CustomAction CA
inner join CustomMenuContent CMC on cast(CMC.ContentXML as nvarchar(max)) like '%G' + replace(CAST(CA.ActionGUID as nvarchar(36)), '-', '') + '%'
inner join CustomMenu CM on CM.CustomMenuGUID = CMC.CustomMenuGUID
union all
select
'File Listener' as ReferrerType,
FL.Name as ReferrerName,
CA.Description as ActionName,
FL.FileListenerGUID as ReferrerGUID,
CA.ActionGUID
from
CustomAction CA
inner join FileListener FL on FL.ActionGUID = CA.ActionGUID
union all
select
'Conditional Action' as ReferrerType,
CA2.Description as ReferrerName,
CA.Description as ActionName,
CA2.ActionGUID as ReferrerGUID,
CA.ActionGUID
from
CustomAction CA
inner join CustomAction CA2 on CA2.ClassName like '%ConditionalAction%' and CA2.Metadata like '%' + CAST(CA.ActionGUID as nvarchar(36)) + '%'
union all
select
'Scheduled Task' as ReferrerType,
TE.Name as ReferrerName,
CA.Description as ActionName,
TE.ScheduledTaskGUID as ReferrerGUID,
CA.ActionGUID
from
CustomAction CA
inner join TEScheduledTask TE on TE.SetupXML like '%' + CAST(CA.ActionGUID as nvarchar(36)) + '%'
union all
select
'Desktop' as ReferrerType,
DT.Name as ReferrerName,
CA.Description as ActionName,
DW.DesktopTemplateGUID as ReferrerGUID,
CA.ActionGUID
from
CustomAction CA
inner join DesktopWidget DW on cast(DW.WidgetXML as nvarchar(max)) like '%' + CAST(CA.ActionGUID as nvarchar(36)) + '%'
inner join DesktopTemplate DT on DT.DesktopTemplateGUID = DW.DesktopTemplateGUID
GO
---------------------------------------------
-- dbo.viewCustomMenuContent
create view viewCustomMenuContent
as
select CustomMenuContentGUID, CustomMenuGUID, cast(ContentXML as nvarchar(max)) as ContentXML from CustomMenuContent
GO
---------------------------------------------
-- dbo.viewCustomScriptDependencies
CREATE view [dbo].[viewCustomScriptDependencies]
as
select
'Workflow Condition' as ReferrerType,
WFM.Name + ' - ' + WFS.Name as ReferrerName,
CS.Name as ScriptName,
WFS.WorkflowStepGUID as ReferrerGUID,
CS.CustomScriptGUID as ScriptGUID
from
CustomScript CS
inner join WFCondition WFC on cast(WFC.Metadata as nvarchar(max)) like '%' + CAST(CS.CustomScriptGUID as nvarchar(36)) + '%'
inner join WFConditionSet WFCS on WFC.ConditionSetGUID = WFCS.ConditionSetGUID
inner join WFTransition WFT on WFT.ConditionSetGUID = WFCS.ConditionSetGUID
inner join WFWorkflowStep WFS on WFS.WorkflowStepGUID = WFT.WorkflowStepFromGUID
inner join WFWorkflowMap WFM on WFM.WorkflowMapGUID = WFS.WorkflowMapGUID
union
select
'Custom Action' as ReferrerType,
CA.Description as ReferrerName,
CS.Name as ScriptName,
CA.ActionGUID as ReferrerGUID,
CS.CustomScriptGUID as ScriptGUID
from
CustomScript CS
inner join CustomAction CA on cast(CA.Metadata as nvarchar(max)) like '%' + CAST(CS.CustomScriptGUID as nvarchar(36)) + '%'
union
select
'Scheduled Task' as ReferrerType,
ST.Name as ReferrerName,
CS.Name as ScriptName,
ST.ScheduledTaskGUID as ReferrerGUID,
CS.CustomScriptGUID as ScriptGUID
from
CustomScript CS
inner join TEScheduledTask ST on cast(ST.SetupXML as nvarchar(max)) like '%' + CAST(CS.CustomScriptGUID as nvarchar(36)) + '%'
union
select
'Plan Type' as ReferrerType,
PT.Name as [ReferrerName],
CS.Name as [ScriptName],
PT.PlanTypeGUID as [ReferrerGUID],
CS.CustomScriptGUID as [ScriptGUID]
from
PlanType PT
inner join CustomScript CS on CS.CustomScriptGUID = PT.OnSaveCustomScriptGUID
union
select
'Plan Type' as ReferrerType,
PT.Name as [ReferrerName],
CS.Name as [ScriptName],
PT.PlanTypeGUID as [ReferrerGUID],
CS.CustomScriptGUID as [ScriptGUID]
from
PlanType PT
inner join CustomScript CS on CS.CustomScriptGUID = PT.OnSaveCustomScript2GUID
union
select
'Plan Type' as ReferrerType,
PT.Name as [ReferrerName],
CS.Name as [ScriptName],
PT.PlanTypeGUID as [ReferrerGUID],
CS.CustomScriptGUID as [ScriptGUID]
from
PlanType PT
inner join CustomScript CS on CS.CustomScriptGUID = PT.OnAfterModelRefreshCustomScriptGUID
union
select
'Plan Type' as ReferrerType,
PT.Name as [ReferrerName],
CS.Name as [ScriptName],
PT.PlanTypeGUID as [ReferrerGUID],
CS.CustomScriptGUID as [ScriptGUID]
from
PlanType PT
inner join CustomScript CS on CS.CustomScriptGUID = PT.OnTemplateChangeCustomScriptGUID
GO
---------------------------------------------
-- dbo.viewCustomScriptDependenciesFast
CREATE view [dbo].[viewCustomScriptDependenciesFast]
AS
select 'Plan Type' as [Type], Name, OnSaveCustomScriptGUID as [ScriptGUID] from PlanType where OnSaveCustomScriptGUID <> dbo.ZeroGUID()
UNION ALL
select 'Plan Type' as [Type], Name, OnSaveCustomScript2GUID as [ScriptGUID] from PlanType where OnSaveCustomScript2GUID <> dbo.ZeroGUID()
UNION ALL
select 'Plan Type' as [Type], Name, OnAfterModelRefreshCustomScriptGUID as [ScriptGUID] from PlanType where OnAfterModelRefreshCustomScriptGUID <> dbo.ZeroGUID()
UNION ALL
select 'Plan Type' as [Type], Name, OnTemplateChangeCustomScriptGUID as [ScriptGUID] from PlanType where OnTemplateChangeCustomScriptGUID <> dbo.ZeroGUID()
UNION ALL
select
'Custom Action',
[Description],
(CAST(MetaData as XML)).value('(CUSTOMSCRIPTGUID)[1]', 'uniqueidentifier') as [ScriptGUID]
from dbo.CustomAction
where ClassName = 'Strata.X.CustomActions.RunCustomScript'
UNION ALL
select
'Workflow Condition',
WFM.Name + ' - ' + WFS.Name,
(CAST(WFC.MetaData as XML)).value('(//SOURCEPARAMETERS/SCRIPTGUID)[1]', 'uniqueidentifier') as [ScriptGUID]
from dbo.WFCondition WFC
inner join WFConditionSet WFCS on WFC.ConditionSetGUID = WFCS.ConditionSetGUID
inner join WFTransition WFT on WFT.ConditionSetGUID = WFCS.ConditionSetGUID
inner join WFWorkflowStep WFS on WFS.WorkflowStepGUID = WFT.WorkflowStepFromGUID
inner join WFWorkflowMap WFM on WFM.WorkflowMapGUID = WFS.WorkflowMapGUID
where WFC.ClassName = 'Strata.X.Biz.Workflow.Conditions.CalculatedValue'
UNION ALL
select
'Scheduled Task',
[Name],
(CAST(SetupXML as XML)).value('(//CUSTOMSCRIPTSCHEDULEDTASKSETUP/CUSTOMSCRIPTGUID)[1]', 'uniqueidentifier') as [ScriptGUID]
from dbo.TEScheduledTask
where AssemblyQualifiedName like 'Strata.X.Biz.ScheduledTasks.CustomScriptScheduledTask%'
GO
---------------------------------------------
-- dbo.viewDataCenterDimensionConfig
CREATE VIEW dbo.viewDataCenterDimensionConfig
AS
WITH DimensionConfig AS
(
SELECT c.DimensionName, c.DataCenterPageName,
RIGHT(stepExisting.[Url], LEN(stepExisting.[Url])-1) StepURLExisting,
CONVERT(VARCHAR(36),stepExisting.StepGUID) StepGUIDExisting,
RIGHT(stepNew.[Url], LEN(stepNew.[Url])-1) StepURLNew,
CONVERT(VARCHAR(36),stepNew.StepGUID) StepGUIDNew
FROM dbo.DataCenterDimensionConfig c
LEFT JOIN dbo.SystemCenterStep stepExisting ON c.SystemCenterStepGlobalIDExisting = stepExisting.GlobalID AND c.SystemCenterStepGlobalIDExisting != ''
LEFT JOIN dbo.SystemCenterStep stepNew ON c.SystemCenterStepGlobalIDNew = stepNew.GlobalID AND c.SystemCenterStepGlobalIDNew != ''
)
SELECT DimensionConfig.DimensionName,
'/DataCenter/Configuration/' + DimensionConfig.DataCenterPageName +'?dimCode=' AS DataCenterURL,
ISNULL(DimensionConfig.StepURLExisting + '?step=' + DimensionConfig.StepGUIDExisting,'') SystemCenterURLExistingMembers,
ISNULL(DimensionConfig.StepURLNew + '?step=' + DimensionConfig.StepGUIDNew,'') SystemCenterURLNewMembers
FROM DimensionConfig
GO
---------------------------------------------
-- dbo.viewDataCenterDimensionModules
CREATE VIEW dbo.viewDataCenterDimensionModules AS
SELECT d.GlobalID, d.SQLSchemaName, d.SQLObjectName, keyAttr.SQLColumnName KeyColumnName, a.SQLColumnName, f.[Name] AS ModuleName, f.Abbreviation AS Abbreviation
FROM dbo.DataCenterDimensionConfig dcDim
INNER JOIN dbo.ScoreDimension d ON dcDim.DimensionName = d.GlobalID
INNER JOIN dbo.ScoreDimensionGroup dg ON d.DimensionGUID = dg.DimensionGUID
INNER JOIN dbo.ScoreAttribute a ON a.DimensionGroupGUID = dg.DimensionGroupGUID
INNER JOIN dbo.ScoreAttribute keyAttr ON d.DefaultKeyGUID = keyAttr.AttributeGUID
INNER JOIN fw.DimFramework f ON f.Abbreviation =
CASE
WHEN REPLACE(a.SQLColumnName, 'IsDefined', '') = 'CI' THEN 'CCI'
WHEN REPLACE(a.SQLColumnName, 'IsDefined', '') = 'CAP' THEN 'CM'
WHEN REPLACE(a.SQLColumnName, 'IsDefined', '') = 'PR' THEN 'PI'
WHEN REPLACE(a.SQLColumnName, 'IsDefined', '') = 'FW' THEN 'GM'
ELSE REPLACE(a.SQLColumnName, 'IsDefined', '')
END
WHERE a.SQLColumnName IN (
'CAPIsDefined',
'CIIsDefined',
'DSSIsDefined',
'FWIsDefined',
'MRIsDefined',
'OBIsDefined',
'PRIsDefined',
'SPIsDefined'
)
AND NOT (d.GlobalID = 'Account' AND a.SQLColumnName = 'CAPIsDefined')
GO
---------------------------------------------
-- dbo.viewDataDictionary
/**************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2017-10-13 IP D-06327 Change view from using ad-hod calculation of ClientField to precalculated field
** 2 2019-05-07 DF B-23035 Add ConfigID to apply simple security assigned to IntConfig table
*************************************************************/
CREATE VIEW [dbo].[viewDataDictionary] AS
with SharedPart AS (
select
idm.DataInterfaceMapID,
f1.FieldName as ClientFieldName,
isf.SourceSystem as ClientSourceSystem,
isfd.ClientField,
isf.Name as DataSet,
f1.GivenScoreAttributeGUID,
f1.ScoreKeyGUID,
f1.IsMeasure,
f1.IsKey,
dis.SectionTypeVal,
dis.ScoreGuid,
dis.Name as SectionName,
f1.IsHidden,
ic.ConfigID ConfigID,
ic.Name as ImportConfiguration,
IsNull(icc.ClientComment, '') as ClientComments,
IsNull(icc.DateModifiedUtc, GETUTCDATE()) as DateModifiedUtc,
IsNull(icc.ModifiedUserGUID, '00000000-0000-0000-0000-000000000000') as ModifiedUserGUID,
IsNull(up.NameFull, '') as ModifiedUserName,
CASE
WHEN isf.MatchModeVal = 2 THEN isf.PartialMatchString
ELSE isf.ExpectedFileName
END as ClientFile,
isfd.SourceColumnId,
dif.DataInterfaceID
from IntDataInterfaceField f1
join IntDataInterfaceSection dis on dis.DataInterfaceSectionID=f1.DataInterfaceSectionID
join IntDataInterface dif on dis.DataInterfaceID=dif.DataInterfaceID
join IntConfig ic on ic.DataInterfaceID=dif.DataInterfaceID and ic.IsHidden = 0
join IntTransformation it on it.ConfigID=ic.ConfigID
cross apply intGetTransformationSourceFileList(it.TransformationID) tsfl
join IntSourceFile isf on isf.SourceFileID = tsfl.SourceFileID
join IntDataInterfaceMap idm on f1.DataInterfaceFieldID=idm.DataInterfaceFieldID
join IntSourceField isfd on isfd.DataSourceID=it.TransformationID and idm.SourceColumnID=isfd.SourceColumnID
left join intClientComment icc on icc.DataInterfaceMapID = idm.DataInterfaceMapID
left join UserProfile up on up.UserGUID = icc.ModifiedUserGUID
where f1.IsHidden = 0)
select distinct sp.DataInterfaceMapID, sa.FriendlyName as FieldName, sa.[Description] as [Description], sd.FriendlyName as DimensionName,
sp.ClientFieldName, [dbo].[GetSQLColumnFullType](sa.ColumnType, sa.MaxLength, sa.Scale, sa.Precision) as [Type], IsNull(sas.IsCustom, 0) as IsCustom,
sp.DateModifiedUtc, sp.ModifiedUserGUID, sp.ModifiedUserName, sp.ClientComments, sa.AttributeGuid as ScoreGuid, sp.ClientSourceSystem, sp.ClientField,
sp.ConfigID, sp.ImportConfiguration, sp.DataSet, sp.ClientFile, sp.SectionName, IsNull(ex.ExampleValue, '') as ExampleValue, GivenScoreAttributeGUID
from SharedPart sp
join ScoreAttribute sa on sa.AttributeGuid=sp.GivenScoreAttributeGUID and sp.IsMeasure=0 and SectionTypeVal=0
join ScoreDimension sd on sd.DimensionGuid=sp.ScoreGuid
left join ScoreAttributeSetting sas on sas.AttributeGuid=sa.AttributeGuid
left join [dbo].[DataDictionaryFieldValueExample] ex on ex.ScoreGUID = sa.AttributeGuid
where not exists (
select * from SharedPart sp2
join ScoreDataTableKeyLink dtl on sp2.DataInterfaceID=sp.DataInterfaceID and dtl.KeyGuid=sp2.ScoreKeyGUID and dtl.DataTableGuid=sp2.ScoreGuid
and sp2.GivenScoreAttributeGuid=sp.GivenScoreAttributeGuid
join ScoreAttribute sa on sa.AttributeGuid=sp2.GivenScoreAttributeGUID
join ScoreDataTable dt on dt.DataTableGuid=dtl.DataTableGuid)
union all
select distinct sp.DataInterfaceMapID, sm.FriendlyName as FieldName, sm.[Description] as [Description], dt.FriendlyName as DimensionName,
sp.ClientFieldName, [dbo].[GetSQLColumnFullType](sm.ColumnTypeValue, sm.MaxLength, sm.Scale, sm.Precision) as [Type], IsNull(sms.IsCustom, 0) as IsCustom,
sp.DateModifiedUtc, sp.ModifiedUserGUID, sp.ModifiedUserName, sp.ClientComments, sm.MeasureGuid as ScoreGuid, sp.ClientSourceSystem, sp.ClientField,
sp.ConfigID, sp.ImportConfiguration, sp.DataSet, sp.ClientFile, sp.SectionName, IsNull(ex.ExampleValue, '') as ExampleValue, GivenScoreAttributeGUID
from SharedPart sp
join ScoreMeasure sm on sm.MeasureGuid=sp.GivenScoreAttributeGUID and sp.IsMeasure=1
join ScoreDataTable dt on dt.DataTableGuid=sm.DataTableGuid
left join ScoreMeasureSetting sms on sms.MeasureGuid=sm.MeasureGuid
left join [dbo].[DataDictionaryFieldValueExample] ex on ex.ScoreGUID = sm.MeasureGuid
union all
select distinct sp.DataInterfaceMapID,
case when SectionTypeVal = 0 then sa.FriendlyName else sd.FriendlyName + ' - ' + sa.FriendlyName end as FieldName,
dtl.[Description] as [Description], dt.FriendlyName as DimensionName,
sp.ClientFieldName, [dbo].[GetSQLColumnFullType](sa.ColumnType, sa.MaxLength, sa.Scale, sa.Precision) as [Type], IsNull(sks.IsCustom, 0) as IsCustom,
sp.DateModifiedUtc, sp.ModifiedUserGUID, sp.ModifiedUserName, sp.ClientComments, dtl.dataTableKeyLinkGuid as ScoreGuid, sp.ClientSourceSystem, sp.ClientField,
sp.ConfigID, sp.ImportConfiguration, sp.DataSet, sp.ClientFile, sp.SectionName, IsNull(ex.ExampleValue, '') as ExampleValue, GivenScoreAttributeGUID
from SharedPart sp
join ScoreDataTableKeyLink dtl on dtl.KeyGuid=sp.ScoreKeyGUID and dtl.DataTableGuid=sp.ScoreGuid
join ScoreAttribute sa on sa.AttributeGuid=sp.GivenScoreAttributeGUID
join ScoreDimensionGroup sdg on sdg.DimensionGroupGuid=sa.DimensionGroupGuid
join ScoreDimension sd on sd.DimensionGuid=sdg.DimensionGuid
join ScoreDataTable dt on dt.DataTableGuid=dtl.DataTableGuid
left join ScoreKeyLinkSetting sks on sks.KeyGuid=dtl.KeyGuid and sks.DataTableGuid=dtl.DataTableGuid
left join [dbo].[DataDictionaryFieldValueExample] ex on ex.ScoreGUID = sp.GivenScoreAttributeGUID
GO
---------------------------------------------
-- dbo.viewDataView
CREATE view [dbo].[viewDataView]
as
select
DV.DataViewGUID,
DV.Name,
DV.SQLViewName,
DV.SecurityColumns,
coalesce(S.name, 'dbo') as SchemaName,
coalesce(V.name, '???') as ViewName,
case when coalesce(C.name, '???') = '???' then 0 else 1 end as SecurityColumnsExistInSQL
from
DataView DV
left join sys.schemas S on replace(replace(DV.SQLViewName, '[', ''), ']', '') like (S.name + '.%')
left join sys.views V on coalesce(S.schema_id, (select SDef.schema_id from sys.schemas SDef where SDef.name = 'dbo')) = V.schema_id and V.name = replace(replace(replace(REPLACE(DV.SQLViewName, '[' + coalesce(S.name, 'dbo') + '].', ''), coalesce(S.name, 'dbo') + '.', ''), '[', ''), ']', '')
left join sys.columns C on C.object_id = V.object_id and C.name = DV.SecurityColumns
--where DV.SecurityColumns != ''
GO
---------------------------------------------
-- dbo.viewDesktopParameter_Broken
create view dbo.viewDesktopParameter_Broken
as
select
dp.*
from
DesktopParameter dp
where
ColumnName != AttributeID
and not exists(select 1 from REReport r inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = r.ReportGUID and cast(ra.AttributeGUID as nvarchar(36)) = dp.AttributeID and ltrim(ra.ColumnName) = ltrim(dp.ColumnName) where dp.ReportGuidsCSV like '%' + cast(r.ReportGUID as nvarchar(36)) + '%')
GO
---------------------------------------------
-- dbo.viewDesktopTemplateByUser
Create view [dbo].viewDesktopTemplateByUser
as
select
up.UserGUID,
up.UserName as UserName,
up.NameFull as UserFullName,
dt.DesktopTemplateGUID,
dt.Name as DesktopTemplate,
link.IsVisible,
case when us.Setting = dt.DesktopTemplateGUID then 1 else 0 end as IsDefault
from
DesktopTemplateUserLink link
inner join UserProfile up on link.UserGUID=up.UserGUID
inner join DesktopTemplate dt on dt.DesktopTemplateGUID = link.DesktopTemplateGUID
inner join UserSetting us on us.UserGUID = up.UserGUID and us.Name = 'DESKTOPDEFAULTTEMPLATE'
GO
---------------------------------------------
-- dbo.viewDimRiskOutputs
CREATE view [dbo].[viewDimRiskOutputs] as
select ROW_NUMBER() OVER(ORDER BY rrd.RiskConfigOutputName ASC) as RowID
, newid() as MemberGUID
, rrd.OutputUniqueID
, rrd.RiskResultName
, rrd.RiskConfigOutputName + ' - ' + rrd.RiskResultName as RiskConfigOutputName
, rrd.RiskResultGUID
, 0 as IsDeleted
from [dbo].[viewSR2RiskResultDetail] rrd
group by rrd.OutputUniqueID, rrd.RiskResultName, rrd.RiskConfigOutputName, RiskResultGUID
GO
---------------------------------------------
-- dbo.viewDimSensitivityOutputs
CREATE view [dbo].[viewDimSensitivityOutputs] as
select ROW_NUMBER() OVER(ORDER BY srd.SensitivityConfigOutputName ASC) as RowID
, newid() as MemberGUID
, srd.OutputUniqueID
, srd.SensitivityResultName
, srd.SensitivityConfigOutputName + ' - ' + srd.SensitivityResultName As SensitivityConfigOutputName
, srd.SensitivityResultGUID
, 0 as IsDeleted
from [dbo].[viewSR2SensitivityResultDetail] srd
group by srd.OutputUniqueID, srd.SensitivityResultName, srd.SensitivityConfigOutputName, srd.SensitivityResultGUID
GO
---------------------------------------------
-- dbo.viewEMFFillIns
CREATE view [dbo].[viewEMFFillIns] as --with schemabinding as
select
ModelGUID,
p.Name as PlanName,
PlaceholderMemberGuid,
phm.Name as PlaceholderName,
FilledInMemberGuid,
fi.name as FillInName,
phm.sortorderfullpath as PlaceholderSort,
fi.SortOrderFullPath as FillinSort,
phmp.listmemberguid as PlaceholderSectionGUID,
phmp.Name as PlaceholderSection
from
dbo.emffillin efi (readuncommitted)
inner join dbo.XPlan p (readuncommitted) on p.PlanGUID = efi.ModelGUID
inner join dbo.securelistmember phm (readuncommitted) on efi.placeholdermemberguid = phm.listmemberguid
inner join dbo.SecureListMember phmp (readuncommitted) on phm.ParentListMemberGUID = phmp.ListMemberGUID
inner join dbo.securelistmember fi (readuncommitted) on efi.filledinmemberguid = fi.listmemberguid
GO
---------------------------------------------
-- dbo.viewEMFFillInsPossibleDupes
CREATE view [dbo].[viewEMFFillInsPossibleDupes] as --with schemabinding as
--select * from viewEMFfillins fi
--where
--exists (
-- select 1
-- from emffillin fidupe
-- group by modelguid, filledinmemberguid
-- having
-- fi.modelguid = fidupe.modelguid
-- and fi.filledinmemberguid = fidupe.filledinmemberguid
-- and count(*) > 1
-- )
select
modelguid, placeholdermemberguid, filledinmemberguid, planname,placeholdername, fillinname
from dbo.viewemffillins vfi
where
exists (
select modelguid, filledinmemberguid from dbo.emffillin fi group by modelguid, filledinmemberguid
having count(*) > 1
and fi.modelguid = vfi.modelguid and fi.filledinmemberguid = vfi.filledinmemberguid
)
GO
---------------------------------------------
-- dbo.viewEMFFillinsOutOfOrder
CREATE view [dbo].[viewEMFFillinsOutOfOrder] as --with schemabinding as
select
fi.SortedPHIndex ,
fi.ModelGUID,
fi.PlanName,
fi.PlaceholderMemberGuid,
fi.PlaceholderName,
fi.FilledInMemberGuid,
fi.FillInName,
fi.PlaceholderSort,
fi.FillinSort,
fi.PlaceholderSectionGUID,
fi.PlaceholderSection,
REPL.PlaceholderMember as SortedPHMember, REPL.PlaceholderMemberGUID as SortedPHMemberGUID
from
dbo.viewEMFFillinsSorted FI
left join dbo.viewPlaceholders REPL on FI.PlaceholderSectionGUID = REPL.PlaceholderParentMemberGUID
and FI.SortedPHIndex = REPL.PHIndex
where
FI.PlaceholderMemberGuid <> REPL.PlaceholderMemberGUID
GO
---------------------------------------------
-- dbo.viewEMFFillinsSorted
CREATE view [dbo].[viewEMFFillinsSorted] as --with schemabinding as
select
row_number() over (partition by fi.modelguid,
fi.placeholdersection order by fi.fillinsort) -1 as SortedPHIndex ,
ModelGUID,
PlanName,
PlaceholderMemberGuid,
PlaceholderName,
FilledInMemberGuid,
FillInName,
PlaceholderSort,
FillinSort,
PlaceholderSectionGUID,
PlaceholderSection
from
dbo.viewemffillins fi
GO
---------------------------------------------
-- dbo.viewEMFFillinsUsage
create view viewEMFFillinsUsage
as
select
PD.Name as Dimension,
P.Name as Section,
(select COUNT(*) from SecureListMember PC where PC.ParentListMemberGUID = P.ListMemberGUID) as SectionChildCount,
coalesce((select MAX(U.UsedCount) from(select FI.ModelGUID, LM.ParentListMemberGUID, COUNT(*) as UsedCount from EMFFillIn FI inner join SecureListMember LM on LM.ListMemberGUID = FI.PlaceholderMemberGUID and LM.ParentListMemberGUID = P.ListMemberGUID group by FI.ModelGUID, LM.ParentListMemberGUID) U), 0) as UsedCount
from
SecureListMember P
inner join SecureList PD on PD.ListGUID = P.ListGUID
where
P.OutlineLevel = 0
and (select COUNT(*) from SecureListMember PC where PC.ParentListMemberGUID = P.ListMemberGUID) > 0
GO
---------------------------------------------
-- dbo.viewEMFModelDataConfigDimensionLinkDetail
--Author: gforeman
--Branch: DSS
--Forward
CREATE view viewEMFModelDataConfigDimensionLinkDetail as
select
dbo.GetFolderFullPath(mdc.FolderGUID) as FolderFullpath,
mdc.Name,sl.Name as DimensionName,
mdc.ModelDataConfigGUID,
sl.ListGUID as DimensionGUID,
case when sl.ListGUID = mdc.FormatOverrideDimensionGUID then 1 else 0 end as IsFormatOverride,
sl.IsSecured,
sl.IsPlaceholder,
fisl.ListGUID as FillInDimensionGUID,
fisl.Name as FillInDimensionName,
mdcdl.IsModelKey
from
emfmodeldataconfig mdc
inner join EMFModelDataConfigDimensionLink mdcdl on mdc.ModelDataConfigGUID = mdcdl.ModelDataConfigGUID
inner join SecureList sl on mdcdl.DimensionGUID = sl.ListGUID
left join securelist fisl on sl.FillInDimensionGUID = fisl.ListGUID
GO
---------------------------------------------
-- dbo.viewEMFModelDataLink
CREATE view [dbo].[viewEMFModelDataLink] as --with schemabinding as
select
p.PlanGUID as ModelGUID,
p.Name as ModelName,
p.PlanTypeGUID as PlanTypeGUID,
pt.Name as PlanTypeName,
mt.ModelTemplateGUID,
mt.Name as ModelTemplateName,
ls.LinkSourceGUID,
ls.Name as LinkSourceName,
mdl.ParentModelGUID,
pp.Name as ParentModelName,
pp.PlanTypeGUID as ParentPlanTypeGUID,
ppt.Name as ParentPlanTypeName
from
XPlan p
left join EMFModelTemplate mt on p.ModelTemplateGUID = mt.ModelTemplateGUID
left join PlanType pt on p.PlanTypeGUID = pt.PlanTypeGUID
left join EMFModelTemplateLinkSource ls on mt.ModelTemplateGUID = ls.ModelTemplateGUID
left join EMFModelDataLink mdl on ls.LinkSourceGUID = mdl.LinkSourceGUID and p.PlanGUID = mdl.ModelGUID
left join XPlan pp on mdl.ParentModelGUID = pp.PlanGUID
left join PlanType ppt on pp.PlanTypeGUID = ppt.PlanTypeGUID
GO
---------------------------------------------
-- dbo.viewEMFModelTemplateExpansion
CREATE view [dbo].[viewEMFModelTemplateExpansion] as
select
map.*,
slm.ListGUID as DimensionGUID,
ws.ModelTemplateGUID,
ws.name as SheetName,
cell.ExcelSheetGUID as WorksheetGUID,
cell.Row as Row1OneBased,
cell.Row2 as Row2OneBased,
cell.Col as ColOneBased
from
EMFModelTemplateExpansion map
inner join SecureListMember slm on map.DimensionMemberGUID = slm.ListMemberGUID
inner join MEExcelCell cell on map.CellGUID = cell.ExcelCellGUID --left for backwards compat :(
inner join EMFModelTemplateWorksheet ws on cell.ExcelSheetGUID = ws.WorksheetGUID --left for backwards compat :(
--left join MEExcelSheet sheet on cell.ExcelSheetGUID = sheet.ExcelSheetGUID
GO
---------------------------------------------
-- dbo.viewEMFModelTemplateFormFieldMapping
CREATE view [dbo].[viewEMFModelTemplateFormFieldMapping] as
select
map.FormFieldGUID,
map.[CellGUID],
ws.ModelTemplateGUID,
ws.name as WorksheetName,
cell.ExcelSheetGUID as WorksheetGUID,
cell.Row,
cell.Col
from
EMFModelTemplateFormFieldMapping map
inner join MEExcelCell cell on map.CellGUID = cell.ExcelCellGUID
inner join EMFModelTemplateWorksheet ws on cell.ExcelSheetGUID = ws.WorksheetGUID
GO
---------------------------------------------
-- dbo.viewEMFModelTemplateFormFieldMappingData
CREATE view [dbo].[viewEMFModelTemplateFormFieldMappingData] as
SELECT
map.CellGUID,
MAP.ModelTemplateGUID,
map.WorksheetGUID,
map.WorksheetName,
map.Row -1 as RowZeroBased,
map.Col -1 as ColZeroBased,
FF.FormFieldGUID,
'' as Value
FROM
viewEMFModelTemplateFormFieldMapping MAP
INNER JOIN FE2FormField FF ON FF.formfieldguid = map.formfieldguid
GO
---------------------------------------------
-- dbo.viewEMFModelTemplateLastPublished
CREATE view viewEMFModelTemplateLastPublished as
select
mt.ModelTemplateGUID,
mt.Name,
isnull(MAX(DATETIMESTAMP), cast('2000-01-01' as datetime)) as LastPublished
from
EMFModelTemplate mt
left join HistoryItem hi on mt.ModelTemplateGUID = hi.OBJECTGUID
group by
mt.ModelTemplateGUID,
mt.Name
GO
---------------------------------------------
-- dbo.viewEMFModelTemplateLinkSource
CREATE view [dbo].[viewEMFModelTemplateLinkSource] as
select
mt.name as TemplateName,
ls.name as LinkSourceName,
mdc.name as StructureName,
st.name as SubtableName,
sc.FriendlyName as CompositeName,
sd1.FriendlyName as ScoreMappingDataTableName,
sd2.FriendlyName as ScoreDataDataTableName,
mt.ModelTemplateGUID,
ls.LinkSourceGUID,
st.SubtableGUID,
mdc.modeldataconfigguid as StructureGUID,
sc.CompositeGUID,
sd1.datatableguid as ScoreMappingDataTableGUID,
sd2.datatableguid as ScoreDataDataTableGUID
from
emfmodeltemplate mt
inner join emfmodeltemplatelinksource ls on mt.modeltemplateguid = ls.modeltemplateguid
left join emfsubtable st on ls.parentsubtableguid = st.subtableguid
left join emfmodeldataconfig mdc on isnull(st.modeldataconfigguid,ls.parentmodeldataconfigguid) = mdc.modeldataconfigguid
left join scorecomposite sc on ls.parentscorecompositetableguid = sc.compositeguid
left join scoredatatable sd1 on sc.datatableguid1 = sd1.datatableguid
left join scoredatatable sd2 on sc.datatableguid2 = sd2.datatableguid
GO
---------------------------------------------
-- dbo.viewEMFModelTemplateMDCs
create view viewEMFModelTemplateMDCs as
select ls.modeltemplateguid, coalesce(st.MODELDATACONFIGGUID,ls.parentmodeldataconfigguid) as modeldataconfigguid from EMFModelTemplateLinkSource ls left join EMFSubtable st on ls.ParentSubtableGUID = st.SUBTABLEGUID
GO
---------------------------------------------
-- dbo.viewEMFModelTemplateNewLabelsOnly
create view viewEMFModelTemplateNewLabelsOnly
as
select
mt2.modeltemplateguid,
case when
mt2.isnewlabelsonly = 1
or not exists (
select 1
from
EMFModelTemplate mt
inner join EMFModelTemplateLinkSource ls on mt.ModelTemplateGUID = ls.ModelTemplateGUID
inner join EMFModelDataConfigMeasureLink ml on ls.ParentModelDataConfigGUID = ml.ModelDataConfigGUID
inner join EMFMeasure m on ml.MeasureGUID = m.MEASUREGUID
where
m.IsPlaceholderLabel = 1
and mt.modeltemplateguid = mt2.modeltemplateguid
)
then cast(1 as bit)
else
cast(0 as bit) end as IsNewLabelsOnly
from
emfmodeltemplate mt2
GO
---------------------------------------------
-- dbo.viewEMFModelTemplatePlaceholderLabelMapping
CREATE view [dbo].[viewEMFModelTemplatePlaceholderLabelMapping] as
select
map.[MappingGUID]
,map.[PlaceholderDimensionGUID]
,map.[PlaceholderMemberGUID]
,map.[LabelPropertyGUID]
,map.[IsHidingRow]
,map.[IsHidingCol]
,map.[IsClearingRow]
,map.[IsClearingCol]
,map.[RowExpanded]
,map.[CellGUID]
,map.[IsUserMapped],
ws.modeltemplateguid as BookGUID,
ws.name as SheetName,
cell.ExcelSheetGUID,
cell.Row,
cell.Col
from
EMFModelTemplatePlaceholderLabelMapping map (readuncommitted)
inner join MEExcelCell cell (readuncommitted) on map.CellGUID = cell.ExcelCellGUID
inner join EMFModelTemplateWorksheet ws (readuncommitted) on cell.ExcelSheetGUID = ws.WorksheetGUID
GO
---------------------------------------------
-- dbo.viewEMFModelTemplatePlaceholderLabelMappingDetail
CREATE view [dbo].[viewEMFModelTemplatePlaceholderLabelMappingDetail] as
select
map.[MappingGUID]
,map.[PlaceholderDimensionGUID]
,phsl.Name as PlaceholderDimensionName
,map.[PlaceholderMemberGUID]
,phslm.Name as PlaceholderMemberName
,map.[LabelPropertyGUID]
,case when map.LabelPropertyGUID = dbo.ZeroGUID() then 'Name' else slp.name end as LabelPropertyName
,map.[IsHidingRow]
,map.[IsHidingCol]
,map.[IsClearingRow]
,map.[IsClearingCol]
,map.[RowExpanded]
,map.[CellGUID]
,map.[IsUserMapped],
ws.modeltemplateguid as BookGUID,
mt.Name as TemplateName,
ws.name as SheetName,
cell.ExcelSheetGUID,
cell.Row,
cell.Col
from
EMFModelTemplatePlaceholderLabelMapping map
inner join MEExcelCell cell on map.CellGUID = cell.ExcelCellGUID --left for backwards compat :(
inner join EMFModelTemplateWorksheet ws on cell.ExcelSheetGUID = ws.WorksheetGUID --left for backwards compat :(
left join SecureListMember phslm on map.PlaceholderMemberGUID = phslm.ListMemberGUID
left join SecureList phsl on map.PlaceholderDimensionGUID = phsl.ListGUID
left join SecureListProperty slp on map.LabelPropertyGUID = slp.ListPropertyGUID
left join EMFModelTemplate mt on ws.ModelTemplateGUID = mt.ModelTemplateGUID
--left join MEExcelSheet sheet on cell.ExcelSheetGUID = sheet.ExcelSheetGUID
GO
---------------------------------------------
-- dbo.viewEMFModelTemplatePossibleLinks
create view viewEMFModelTemplatePossibleLinks as
select distinct
tgt.ModelTemplateGuid as TargetModelTemplateGuid,
tgt.ModelDataConfigGuid as TargetModelDataConfigGuid,
tgt.IsSubtable as TargetIsSubtable,
isnull(tgt.SubtableGuid, dbo.zeroguid()) as TargetSubtableGuid
from
(select
ls.ModelTemplateGUID, mdc.ModelDataConfigGUID, case when st.NAME is null then cast(0 as bit) else cast(1 as bit) end as IsSubtable, st.SUBTABLEGUID
from
[dbo].[EMFModelTemplateLinkSource] ls
left join [dbo].[EMFSubtable] st on ls.ParentSubtableGUID = st.SUBTABLEGUID
left join [dbo].[EMFModelDataConfig] mdc on isnull(st.MODELDATACONFIGGUID, ls.ParentModelDataConfigGUID) = mdc.ModelDataConfigGUID
where
ls.IsSelf = 0
) tgt
inner join
(select
ls.ModelTemplateGUID, mdc.ModelDataConfigGUID, ls.Name
from
[dbo].[EMFModelTemplateLinkSource] ls
inner join [dbo].[EMFModelDataConfig] mdc on ls.ParentModelDataConfigGUID = mdc.ModelDataConfigGUID
where
ls.IsSelf = 1
) src on src.ModelDataConfigGuid = tgt.ModelDataConfigGuid
GO
---------------------------------------------
-- dbo.viewEMFPlaceholderSummary
CREATE view viewEMFPlaceholderSummary as
select
sl.ListGUID as PHDimensionGUID,
sl.name as PHDimensionName,
slm.ListMemberGUID as PHSectionGUID ,
slm.name as PHSectionName,
(select count(*) from securelistmember cslm where cslm.parentlistmemberguid = slm.listmemberguid) as Children,
(select top 1 listmemberguid from securelistmember cslm where cslm.parentlistmemberguid = slm.listmemberguid order by cslm.SortOrderFullPath) as FirstPHMemberGUID,
slm.SortOrderFullPath
from
securelistmember slm
inner join securelist sl on slm.listguid = sl.listguid
where
sl.isplaceholder = 1
and slm.outlinelevel = 0
GO
---------------------------------------------
-- dbo.viewEMFStructuresInTemplates
CREATE VIEW [dbo].[viewEMFStructuresInTemplates]
AS
SELECT
TE.ModelTemplateGUID,
TE.Name As [Template Name],
COALESCE(MDC.ModelDataConfigGUID, SV.SubtableGUID, COMP.CompositeGUID) as [StructureGUID],
COALESCE(MDC.Name, SV.Name, COMP.FriendlyName) as [Structure Name],
CASE
WHEN TLS.ParentModelDataConfigGUID <> '00000000-0000-0000-0000-000000000000' THEN 'EMF Structure'
WHEN TLS.ParentSubtableGUID <> '00000000-0000-0000-0000-000000000000' THEN 'EMF Subtable'
WHEN TLS.ParentScoreCompositeTableGUID <> '00000000-0000-0000-0000-000000000000' Then 'Score Composite'
END AS [Config Type]
FROM
dbo.EMFModelTemplate AS TE
INNER JOIN dbo.EMFModelTemplateLinkSource AS TLS ON TLS.ModelTemplateGUID = TE.ModelTemplateGUID
LEFT JOIN dbo.EMFModelDataConfig MDC ON MDC.ModelDataConfigGUID = TLS.ParentModelDataConfigGUID
LEFT JOIN dbo.EMFSubtable SV ON SV.SUBTABLEGUID = TLS.ParentSubtableGUID
LEFT JOIN dbo.ScoreComposite COMP ON COMP.CompositeGUID = TLS.ParentScoreCompositeTableGUID
GO
---------------------------------------------
-- dbo.viewEmailMessage
CREATE view [dbo].[viewEmailMessage]
as
select
M.*,
coalesce(U.NameFull, '') as SenderFullName,
coalesce(U.EmailAddress, '') as SenderEmailAddress
from
[dbo].[EmailMessage] M
left join [dbo].[UserProfile] U (readuncommitted) on U.UserGUID = M.SenderUserGUID
GO
---------------------------------------------
-- dbo.viewEmailRecipient
CREATE view dbo.viewEmailRecipient
as
select
R.*,
coalesce(coalesce(coalesce(U.NameFull, UG.Name), UR.Name), '') as IdentityFullName
from
EmailRecipient R
left join UserProfile U (readuncommitted) on U.UserGUID = R.IdentityGUID and R.IdentityType = 0
left join UserGroup UG (readuncommitted) on UG.UserGroupGUID = R.IdentityGUID and R.IdentityType = 1
left join UserRole UR (readuncommitted) on UR.UserRoleGUID = R.IdentityGUID and R.IdentityType = 2
GO
---------------------------------------------
-- dbo.viewFE2FormField
CREATE VIEW [dbo].[viewFE2FormField]
AS
SELECT
FF.*,
isnull(SA.AttributeGUID, dbo.ZeroGUID()) as AttributeGUID,
isnull(SA.IsCopiedWithPlan,0) as IsCopiedWithPlan,
isnull(SA.SQLColumnName, '') as ColumnName,
isnull(SA.ColumnType, 0) as ColumnType,
isnull(SA.Precision, 0) as ColumnPrecision,
isnull(SA.Scale, 0) as ColumnScale,
isnull(SA.MaxLength, 0) as ColumnMaxLength,
ISNULL(SA.IsFormField, 1) as IsAttributeEditable,
case when isnull(SA.IsSecuredLootID, 0) = 1 or isnull(SA.IsSecuredLootGroupID, 0) = 1 then cast(1 as bit) else cast(0 as bit) end as IsAttributeSecured,
isnull(DG.DimensionGUID, dbo.ZeroGUID()) as DimensionGUID,
isnull(DG.SchemaName + '.' + DG.ObjectName, '') as DimensionGroupSQLExpression,
isnull(SD.SQLSchemaName + '.' + SD.SQLObjectName, '') as DimensionSQLExpression,
coalesce(F.PlanTypeGUID, dbo.ZeroGUID()) as PlanTypeGUID,
coalesce(F.FormGUID, dbo.ZeroGUID()) as FormGUID,
isnull(F.IsHidden, 0) as IsDirectoryOnly,
coalesce(FT.Name, '') as FormTab,
coalesce(FT.DisplayOrder, 0) as FormTabDisplayOrder,
coalesce(FS.DisplayOrder, 0) as FormSectionDisplayOrder
FROM
FE2FormField FF (readuncommitted)
left join [dbo].[ScoreAttribute] SA (readuncommitted) on SA.AttributeGUID = FF.DataSourceGUID
left join [dbo].[ScoreDimensionGroup] DG (readuncommitted) on DG.DimensionGroupGUID = SA.DimensionGroupGUID
left join [dbo].[ScoreDimension] SD (readuncommitted) on SD.DimensionGUID = DG.DimensionGUID
left join [dbo].[FE2FormSection] FS (readuncommitted) on FS.FormSectionGUID = FF.FormSectionGUID
left join [dbo].[FE2FormTab] FT (readuncommitted) on FT.FormTabGUID = FS.FormTabGUID
left join [dbo].[FE2Form] F (readuncommitted) on F.FormGUID = FT.FormGUID
GO
---------------------------------------------
-- dbo.viewFE2FormFieldComputed
CREATE VIEW dbo.viewFE2FormFieldComputed
AS
select
case when cast(cast(ComputedFieldConfig as xml).query('//IsActive[1]/text()') as nvarchar(10)) = 'true' then cast(1 as bit) else cast(0 as bit) end as IsComputedFieldActive,
cast(cast(cast(ComputedFieldConfig as xml).query('//LastRefreshErrorGUID[1]/text()') as nvarchar(36)) as uniqueidentifier) as LastRefreshErrorGUID,
cast(cast(ComputedFieldConfig as xml).query('//LastRunTime[1]/text()') as nvarchar(100)) as LastRunTimeSeconds,
cast(cast(ComputedFieldConfig as xml).query('//SQL[1]/text()') as nvarchar(max)) as SQL,
cast(cast(ComputedFieldConfig as xml).query('//LastRefreshSQL[1]/text()') as nvarchar(max)) as LastRefreshSQL,
cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int) as CustomSQLType,
case
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=0 then 'Unspecified'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=1 then 'DateCreated'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=2 then 'DBSetting'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=3 then 'DimensionDriven'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=4 then 'FileAttachment'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=5 then 'FillinDriven'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=6 then 'FormFieldDriven'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=7 then 'ModelDriven'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=8 then 'Workflow'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=9 then 'NotApplicable'
when cast(cast(cast(ComputedFieldConfig as xml).query('//CustomSQLType[1]/text()') as nvarchar(10)) as int)=10 then 'AlwaysUpdate' end as CustomSQLTypeName,
case when cast(cast(ComputedFieldConfig as xml).query('//IsAsynchronous[1]/text()') as nvarchar(5)) = 'true' then cast(1 as bit) else cast(0 as bit) end as IsAsynchronous,
*
from
[dbo].[viewFE2FormField]
where
ComputedFieldClassName != ''
GO
---------------------------------------------
-- dbo.viewFE2ScriptSnippetHistory
CREATE view [dbo].[viewFE2ScriptSnippetHistory]
AS
select
S.*,
H.Name,
H.Type,
H.ErrorGUID
from
[dbo].[FE2ScriptSnippetHistory] S
inner join [dbo].[viewFE2ScriptUpgradeHistory] H on H.HistoryGUID = S.HistoryGUID
GO
---------------------------------------------
-- dbo.viewFE2ScriptUpgradeHistory
CREATE view dbo.viewFE2ScriptUpgradeHistory
as
select
H.HistoryGUID,
'SQL Object' as Type,
H.SQLObjectName as Name,
H.OldValue,
H.NewValue,
H.RiskLevel,
H.IsComplete,
H.CustomScriptGUID,
H.ErrorGUID
from
[dbo].[FE2ScriptUpgradeHistory] H
where
H.SQLObjectName != ''
union all
select
H.HistoryGUID,
'Registered Script' as Type,
CS.Name as Name,
H.OldValue,
H.NewValue,
H.RiskLevel,
H.IsComplete,
H.CustomScriptGUID,
H.ErrorGUID
from
[dbo].[FE2ScriptUpgradeHistory] H
inner join [dbo].[CustomScript] CS on CS.CustomScriptGUID = H.CustomScriptGUID
union all
select
H.HistoryGUID,
'Calculated Field' as Type,
FF.Name as Name,
H.OldValue,
H.NewValue,
H.RiskLevel,
H.IsComplete,
H.CustomScriptGUID,
H.ErrorGUID
from
[dbo].[FE2ScriptUpgradeHistory] H
inner join [dbo].[FEFormField] FF on FF.FORMFIELDGUID = H.CustomScriptGUID
GO
---------------------------------------------
-- dbo.viewFE2ScriptUpgradeWorkflow
CREATE view dbo.viewFE2ScriptUpgradeWorkflow
as
select
cs.CustomScriptGUID, cs.Name as CustomScriptName, dbo.straggr(distinct wfm.Name, ', ', '') as WorkflowNames
from
WFEventPlanStatement eps (readuncommitted)
inner join [dbo].[CustomAction] ca (readuncommitted) on ca.ActionGUID = eps.StatementGUID
inner join [dbo].[CustomScript] cs (readuncommitted) on ca.Metadata = '' + cast(cs.CustomScriptGUID as nvarchar(36)) + ''
inner join WFEventPlan ep (readuncommitted) on ep.EventPlanGUID = eps.EventPlanGUID
inner join WFWorkflowStep wfs (readuncommitted) on wfs.OnStartEventPlanGUID = ep.EventPlanGUID or wfs.OnEndEventPlanGUID = ep.EventPlanGUID
inner join WFWorkflowMap wfm (readuncommitted) on wfm.WorkflowMapGUID = wfs.WorkflowMapGUID
inner join FE2ScriptUpgradeHistory suh (readuncommitted) on suh.CustomScriptGUID = cs.CustomScriptGUID
group by
cs.CustomScriptGUID, cs.Name
having
count(distinct wfm.Name) > 1
union all
select
cs.CustomScriptGUID, cs.Name as CustomScriptName, dbo.straggr(distinct wfm.Name, ', ', '') as WorkflowNames
from
WFCondition c (readuncommitted)
inner join [dbo].[CustomScript] cs (readuncommitted) on cast(cast(c.Metadata as xml).query('//CUSTOMSCRIPTGUID[1]/text()') as nvarchar(36)) = cast(cs.CustomScriptGUID as nvarchar(36))
inner join WFConditionSet wfcs (readuncommitted) on wfcs.ConditionSetGUID = c.ConditionSetGUID
inner join WFEventPlanStatement eps (readuncommitted) on eps.StatementGUID = wfcs.ConditionSetGUID
inner join WFEventPlan ep (readuncommitted) on ep.EventPlanGUID = eps.EventPlanGUID
inner join WFWorkflowStep wfs (readuncommitted) on wfs.OnStartEventPlanGUID = ep.EventPlanGUID
inner join WFWorkflowMap wfm (readuncommitted) on wfm.WorkflowMapGUID = wfs.WorkflowMapGUID or wfs.OnEndEventPlanGUID = ep.EventPlanGUID or wfs.QualifyConditionSetGUID = wfcs.ConditionSetGUID
inner join FE2ScriptUpgradeHistory suh (readuncommitted) on suh.CustomScriptGUID = cs.CustomScriptGUID
group by
cs.CustomScriptGUID, cs.Name
having
count(distinct wfm.Name) > 1
union all
select
cs.CustomScriptGUID, cs.Name as CustomScriptName, dbo.straggr(distinct wfm.Name, ', ', '') as WorkflowNames
from
WFCondition c (readuncommitted)
inner join [dbo].[CustomScript] cs (readuncommitted) on cast(cast(c.Metadata as xml).query('//CUSTOMSCRIPTGUID[1]/text()') as nvarchar(36)) = cast(cs.CustomScriptGUID as nvarchar(36))
inner join WFConditionSet wfcs (readuncommitted) on wfcs.ConditionSetGUID = c.ConditionSetGUID
inner join WFTransition t (readuncommitted) on t.ConditionSetGUID = wfcs.ConditionSetGUID
inner join WFWorkflowStep wfs (readuncommitted) on wfs.WorkflowStepGUID = t.WorkflowStepFromGUID
inner join WFWorkflowMap wfm (readuncommitted) on wfm.WorkflowMapGUID = wfs.WorkflowMapGUID
inner join FE2ScriptUpgradeHistory suh (readuncommitted) on suh.CustomScriptGUID = cs.CustomScriptGUID
group by
cs.CustomScriptGUID, cs.Name
having
count(distinct wfm.Name) > 1
GO
---------------------------------------------
-- dbo.viewFEFormDataHistory
CREATE VIEW [dbo].[viewFEFormDataHistory] AS
SELECT
HIST.RowID
, HIST.EntityGUID as PlanGUID
,isnull(fd.name,hist.EntityName) as PlanName
,HIST.FormFieldGUID
,ISNULL(ff.name,hist.FormFieldName) as FormFieldName
,HIST.DateTimeStamp
,CASE
WHEN FF.FieldType IN (1,2,3,15,17) THEN CAST(HIST.ValueFloat AS NVARCHAR(MAX))
ELSE HIST.ValueVarChar
END AS [Value]
,HIST.ValueBit
,HIST.ValueDate
,HIST.ValueFloat
,HIST.ValueGUID
,HIST.ValueGUIDS
,HIST.ValueVarChar
FROM
dbo.FEFormDataHistory HIST (readuncommitted)
LEFT JOIN dbo.FE2FormField FF (readuncommitted) ON (hist.FormFieldGUID = FF.FormFieldGUID)
left join XPlan fd (readuncommitted) on HIST.EntityGUID = fd.PlanGUID
GO
---------------------------------------------
-- dbo.viewFEFormField
--used for framework transfers, which require xml cols to be cast to varchar for cross-db scripting
create view dbo.viewFEFormField
as
SELECT [FormFieldGUID]
,[GlobalID]
,[Name]
,[FieldType]
,[MaxLength]
,[MinLength]
,[DataFormat]
,[DefaultValue]
,[HelpText]
,[IsReadOnly]
,[HasNumericMaxValue]
,[NumericMaxValue]
,[HasNumericMinValue]
,[NumericMinValue]
,[StringMask]
,[DecimalPlaces]
,[UseThousandsSeparator]
,[UseNegParentheses]
,[HasLabel]
,[LabelDisplayType]
,[LabelWidth]
,[IsInDirectory]
,[SourceType]
,[SourcePath]
,[SourceGUID]
,[Rows]
,[UsePicker]
,[DefaultSortOrder]
,[IsRequired]
,[Mask]
,[HelpTextDisplayType]
,[HasOptionHelpText]
,[DefaultValueType]
,[Label]
,[HasRowNumbers]
,[FolderGUID]
,[SpecialFieldType]
,[SourceDisplayFormat]
,[ExecutionOrder]
,[DirectoryName]
,[ScaleDisplayFactor]
,[DateCreated]
,[DateModified]
,[IsRecordingHistory]
,[IsCleared]
,[DisplayFormatOverride]
,[ResizeOffset]
,[IsSetupLocked]
,[IsCoolite]
,[IsCopied]
,[RenderType]
,[RenderThreshold]
,[RenderComparisonFieldGUID]
,[RenderComparisonOperator]
,[RefreshMode]
,cast([TypeConfigXML] as nvarchar(max)) as [TypeConfigXML]
FROM [dbo].[FEFormField]
GO
---------------------------------------------
-- dbo.viewFEFormFieldCore
CREATE VIEW [dbo].[viewFEFormFieldCore] as
SELECT [FormFieldGUID]
,[GlobalID]
,[Name]
,[FieldType]
,[MaxLength]
,[MinLength]
,[IsReadOnly]
,[HasNumericMaxValue]
,[NumericMaxValue]
,[HasNumericMinValue]
,[NumericMinValue]
,[DecimalPlaces]
,[UseThousandsSeparator]
,[UseNegParentheses]
,[HasLabel]
,[LabelDisplayType]
,[LabelWidth]
,[IsInDirectory]
,[SourceType]
,[SourceGUID]
,[Rows]
,[UsePicker]
,[DefaultSortOrder]
,[IsRequired]
,[HelpTextDisplayType]
,[HasOptionHelpText]
,[DefaultValueType]
,[HasRowNumbers]
--,[IsInheritingPermissions]
--,[IsAdvancedMode]
,[FolderGUID]
,[SpecialFieldType]
,[ExecutionOrder]
,[DirectoryName]
,[ScaleDisplayFactor]
,[DisplayFormatOverride]
,[ResizeOffset]
,[IsSetupLocked]
,[IsCoolite]
,[IsCopied]
,[RenderType]
,[RenderThreshold]
,[RenderComparisonFieldGUID]
,[RenderComparisonOperator]
,[RefreshMode]
,[DateCreated]
,[DateModified]
,[IsRecordingHistory]
,[IsCleared]
,'' as [StringMask]
,'' as [SourcePath]
,'' as [Mask]
,'' as [Label]
,'' as [SourceDisplayFormat]
,'' as [DataFormat]
,'' as [DefaultValue]
,'' as [HelpText]
FROM [dbo].[FEFormField]
GO
---------------------------------------------
-- dbo.viewFEFormSectionRule
CREATE view [dbo].[viewFEFormSectionRule]
as
select FormSectionRuleGUID, FormSectionGUID, cast(RuleXML as nvarchar(max)) as RuleXML, Description, RuleType from FEFormSectionRule
GO
---------------------------------------------
-- dbo.viewFormFieldUsage
CREATE view viewFormFieldUsage
as
select
FF.FormFieldGUID,
FF.Name as FormFieldName,
--FFS.FormDefGUID,
FD.Name as FormName,
--FFS.FormSectionGUID,
FS.Name as FormSectionName
from
FE2FormField FF
inner join [dbo].[FE2FormSection] FS on FS.FormSectionGUID = FF.FormSectionGUID
inner join [dbo].[FE2FormTab] FT on FT.FormTabGUID = FS.FormTabGUID
inner join [dbo].[FE2Form] FD on FT.FormGUID = FD.FormGUID
GO
---------------------------------------------
-- dbo.viewFramework
CREATE view [dbo].[viewFramework]
AS
SELECT
FrameworkID, Framework, FrameworkSchemaName, ClientSchemaName, Abbreviation
FROM
(SELECT
1 AS FrameworkID, 'Capital Management' AS Framework, 'cap' AS FrameworkSchemaName, 'clientcap' AS ClientSchemaName, 'CAP' AS Abbreviation
UNION ALL
SELECT
2 AS FrameworkID, 'Management Reporting' AS Framework, 'mr' AS FrameworkSchemaName, 'clientmr' AS ClientSchemaName, 'MR' AS Abbreviation
UNION ALL
SELECT
3 AS FrameworkID, 'Productivity Improvement' AS Framework, 'pi' AS FrameworkSchemaName, 'clientpi' AS ClientSchemaName, 'PI' AS Abbreviation
UNION ALL
SELECT
4 AS FrameworkID, 'Operating Budgeting' AS Framework, 'ob' AS FrameworkSchemaName, 'clientob' AS ClientSchemaName, 'OB' AS Abbreviation
UNION ALL
SELECT
5 AS FrameworkID, 'Stategic Planning' AS Framework, 'lrfp' AS FrameworkSchemaName, 'clientlrfp' AS ClientSchemaName, 'LRPF' AS Abbreviation) FRAMEWORKS
GO
---------------------------------------------
-- dbo.viewHistoryItem
create view dbo.viewHistoryItem
as
--casting xml columns to nvarchar so this can be used for cross-server scripts (Alchemy only)
SELECT [HISTORYITEMGUID], [OBJECTGUID], [OBJECTTYPE], [DATETIMESTAMP], [MODIFIERUSERGUID], [CATEGORY], [DESCRIPTION], [USERCOMMENTS], cast([METAXML] as nvarchar(max)) as [METAXML], [VERSION], [MODIFIERUSERNAME], [ITEMCOUNT], [ELAPSEDMS], [TransactionID]
FROM [dbo].[HistoryItem]
GO
---------------------------------------------
-- dbo.viewIRCChat
CREATE view [dbo].[viewIRCChat]
as
select
C.IRCChatGUID,
C.Name,
C.Description,
C.CreationTime,
C.SQLTableName,
C.AuthorGUID,
C.LastModifiedUserGUID,
C.RowID,
C.HistoryItemGUID,
C.Version,
C.IsChatDeleted,
coalesce(UP.NAMELAST + ', ' + UP.NameFirst, CASE WHEN C.AuthorGUID = dbo.GetSuperUserGUID() THEN 'Strata' else 'Unknown' end) as Author,
coalesce(UP1.NAMELAST + ', ' + UP1.NameFirst, CASE WHEN C.LastModifiedUserGUID = dbo.GetSuperUserGUID() THEN 'Strata' else 'Unknown' end) as LastModifiedBy
from dbo.IRCChat C
left join dbo.UserProfile UP on C.AuthorGUID = UP.UserGUID
left join dbo.UserProfile UP1 on C.LastModifiedUserGUID = UP1.UserGUID
GO
---------------------------------------------
-- dbo.viewIRCChatMembership
CREATE view [dbo].[viewIRCChatMembership]
AS
select
C.Name as [Chat],
UP.NameLast + ', ' + UP.NameFirst as [UserFullName],
UP.UserName as [UserName],
M.LastCheckinTime as [LastCheckin]
from dbo.IRCChat C
inner join dbo.IRCChatMembership M on C.IRCChatGUID = M.IRCChatGUID
inner join dbo.UserProfile UP on UP.UserGUID = M.UserGUID
GO
---------------------------------------------
-- dbo.viewImportCSVConfig
CREATE view [dbo].[viewImportCSVConfig]
as
SELECT [ImportCSVConfigGUID]
,[Name]
,[Description]
,cast([ConfigXML] as nvarchar(max)) as ConfigXML
,[TimeoutSeconds]
FROM [dbo].[ImportCSVConfig]
GO
---------------------------------------------
-- dbo.viewIntTransaction
CREATE VIEW [dbo].[viewIntTransaction]
AS
with IntTransactionDataAgg as (
select
TransactionGUID,
SUM(RowsImported) as RowsImported,
SUM(RowsRejected) AS RowsRejected,
case when SUM(cast(IsImportDeleted as int)) > 0 then CAST(1 as bit) else CAST(0 as bit) end as IsImportDeleted,
case when SUM(cast(HasDummyFile as int)) > 0 then CAST(1 as bit) else CAST(0 as bit) end as HasDummyFile,
CAST(MAX(CAST(IsAdhocImport AS INT)) AS BIT) as IsAdhocImport
from
[dbo].[IntTransactionData]
group by
TransactionGUID
)
select
trn.*,
isnull(cfg.Name, 'Unknown') as ConfigName,
isnull(cfg.IntegrationTypeVal, 0) as IntegrationTypeVal,
DateDiff(second, trn.StartTimeUtc, trn.EndTimeUtc) as Duration,
isnull(usr.NameFirst, case when UserId = '10101010-1111-0000-1111-101010101010' then 'Strata' else 'Unknown' end) as UserNameFirst,
isnull(usr.NameLast, case when UserId = '10101010-1111-0000-1111-101010101010' then 'Strata' else 'Unknown' end) as UserNameLast,
isnull(usr.UserName, case when UserId = '10101010-1111-0000-1111-101010101010' then 'Strata' else 'Unknown' end) as UserName,
isnull(usr.EmailAddress, 'Unknown') as UserEmailAddress,
isnull(td.IsImportDeleted, cast(0 as bit)) as IsImportDeleted,
isnull(td.RowsImported, 0) as RowsImported,
ISNULL(td.RowsRejected, 0) AS RowsRejected,
isnull(td.HasDummyFile, cast(0 as bit)) as HasDummyFile,
ISNULL(td.IsAdhocImport, CAST(0 AS BIT)) AS IsAdhocImport
from
[dbo].[IntTransaction] trn
left join IntTransactionDataAgg td on td.TransactionGUID = trn.TransactionGUID
left join [dbo].[IntConfig] cfg on trn.ConfigID = cfg.ConfigID
left join [dbo].[UserProfile] usr on trn.UserID = usr.UserGUID
GO
---------------------------------------------
-- dbo.viewKeys
CREATE VIEW dbo.viewKeys
AS
select S.name as SchemaName, O1.name as ObjectName, CST.name as [Name] from sys.key_constraints CST
inner join sys.schemas S on S.schema_id = CST.schema_id
inner join sys.objects O on CST.object_id = O.object_id
inner join sys.objects O1 on O1.object_id = CST.parent_object_id
UNION ALL
select S.name as SchemaName, O1.name as ObjectName, FK.name as [Name] from sys.foreign_keys FK
inner join sys.schemas S on S.schema_id = FK.schema_id
inner join sys.objects O on FK.object_id = O.object_id
inner join sys.objects O1 on O1.object_id = FK.parent_object_id
GO
---------------------------------------------
-- dbo.viewMDCs
CREATE view [dbo].[viewMDCs] as
select *,'zzEMFModelData_' + lower(replace(cast(modeldataconfigguid as varchar(36)), '-', '_')) as dataName from emfmodeldataconfig
GO
---------------------------------------------
-- dbo.viewMECell
CREATE view [dbo].[viewMECell] as
select
cell.*,
cell.ExcelCellGUID as CellGUID,
cell.ExcelSheetGUID as SheetGUID,
book.ModelTemplateGUID,
book.Name as TemplateName,
SHEET.Name as WorksheetName,
book.ModelTemplateGUID as BookGUID, --duplicate for backwards compat
book.Name as BookName, --duplicate for backwards compat
sheet.Name as SheetName --duplicate for backwards compat
from
MEExcelCell CELL (readuncommitted)
inner join EMFModelTemplateWorksheet SHEET (readuncommitted) ON SHEET.WorksheetGUID = CELL.ExcelSheetGUID
inner join emfmodeltemplate BOOK (readuncommitted) on BOOK.ModelTemplateGUID = SHEET.ModelTemplateGUID
GO
---------------------------------------------
-- dbo.viewMEModelRefreshQueue
CREATE view [dbo].[viewMEModelRefreshQueue]
as
select
Q.ModelGUID,
Q.DateTimeStamp,
Q.ErrorLogGUID,
Q.UserName,
Q.Source,
Q.CompositeGUID,
isnull(C.FriendlyName, 'All') as CompositeName,
isnull(P.ModelTemplateGUID, dbo.ZeroGUID()) as ModelTemplateGUID
from
[dbo].[MEModelRefreshQueue] Q with (readuncommitted)
left join [dbo].[XPlan] P with (readuncommitted) on P.PlanGUID = Q.ModelGUID
left join [dbo].[ScoreComposite] C with (readuncommitted) on C.CompositeGUID = Q.CompositeGUID
GO
---------------------------------------------
-- dbo.viewMEPHSection
-- Forward
CREATE view [dbo].[viewMEPHSection] as
select
phsc.*,
phdim.FriendlyName as PHDimensionFriendlyName,
fidim.DimensionGUID as FillInDimensionGUID,
fidim.FriendlyName as FillInDimensionFriendlyName
from
dbo.MEPHSection phsc
inner join dbo.ScoreDimension phdim on phsc.PHSectionDimensionGUID = phdim.DimensionGUID
inner join dbo.EMFModelTemplate mt on phsc.ModelTemplateGUID = mt.ModelTemplateGUID
--is there a better way?
inner join dbo.ScoreDimension fidim on fidim.DimensionGUID = (
select distinct
sdg2.DimensionGUID
from
EMFModelTemplateLinkSource ls
inner join ScoreComposite sc on ls.ParentScoreCompositeTableGUID = sc.CompositeGUID
inner join ScoreCompositeLink scl on sc.CompositeGUID = scl.CompositeGUID
inner join ScoreAttribute k1 on scl.Key1GUID = k1.AttributeGUID
inner join ScoreDimensionGroup sdg1 on sdg1.DimensionGroupGUID=k1.DimensionGroupGUID
inner join ScoreAttribute k2 on scl.Key2GUID = k2.AttributeGUID
inner join ScoreDimensionGroup sdg2 on sdg2.DimensionGroupGUID=k2.DimensionGroupGUID
where
sdg1.DimensionGUID = phsc.PHSectionDimensionGUID
and ls.ModelTemplateGUID = mt.modeltemplateguid
)
GO
---------------------------------------------
-- dbo.viewMEPHSectionAnalysis
CREATE view dbo.viewMEPHSectionAnalysis
as
select
ModelTemplateGUID,
PlaceholderSectionMemberGUID,
MemberName as PlaceholderSectionMemberName,
isnull([1],1) as Decile01,
case when isnull([1],1) < 25 then isnull([1],1) else isnull([2],1) end as Decile02,
case when isnull([1],1) < 25 then isnull([1],1) else isnull([3],1) end as Decile03,
case when isnull([1],1) < 25 then isnull([1],1) else isnull([4],1) end as Decile04,
case when isnull([1],1) < 25 then isnull([1],1) else isnull([5],1) end as Decile05,
case when isnull([1],1) < 25 then isnull([1],1) else isnull([6],1) end as Decile06,
case when isnull([1],1) < 25 then isnull([1],1) else isnull([7],1) end as Decile07,
case when isnull([1],1) < 25 then isnull([1],1) else isnull([8],1) end as Decile08,
case when isnull([1],1) < 25 then isnull([1],1) else isnull([9],1) end as Decile09,
case when isnull([1],1) < 25 then isnull([1],1) else isnull([10],1) end as Decile10
from (
select
ModelTemplateGUID,
PlaceholderSectionMemberGUID,
MemberName,
max(Total) as [Count],
Decile
from (
select
PlanGUID,
Name,
ModelTemplateGUID,
PlaceholderSectionMemberGUID,
MemberName,
Total,
NTILE(10) OVER(PARTITION BY PlaceholderSectionMemberGUID ORDER BY TOTAL DESC) as Decile
from (
select
ModelGUID as PlanGUID,
db.Name,
db.ModelTemplateGUID,
PlaceholderSectionMemberGUID,
MEPH.FriendlyName as MemberName,
Count(FillinMemberGUID) as Total
from
[dbo].[ScoreFillin] fill with (readuncommitted)
inner join [dbo].[XPlan] db with (readuncommitted) on db.PlanGUID=fill.ModelGUID
inner join [dbo].[MEPHSection] MEPH with (readuncommitted) on MEPH.PHSectionMemberGUID = fill.PlaceholderSectionMemberGUID and MEPH.ModelTemplateGUID = db.ModelTemplateGUID
inner join [dbo].[ScoreDimension] SD with (readuncommitted) on SD.DimensionGUID = MEPH.PHSectionDimensionGUID
where
db.IsDeletedPlan = 0
and MEPH.PHSectionMemberGUID != '00000000-0000-0000-0000-000000000000'
and SD.GlobalID not in('Fiscal Year PH','OB Departmental Budget PH','Time Class PH')
group by
ModelGUID,
db.Name,
db.ModelTemplateGUID,
PlaceholderSectionMemberGUID,
MEPH.FriendlyName
) as groupedTable
) as deciletable
group by
ModelTemplateGUID,
PlaceholderSectionMemberGUID,
MemberName,
Decile
) as maxtable
pivot (
max([Count]) FOR Decile IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10])
) as PivotTable
GO
---------------------------------------------
-- dbo.viewMEPHSectionAnalysisRecommendation
CREATE VIEW [dbo].[viewMEPHSectionAnalysisRecommendation]
AS
SELECT
SUGGESTED.[ModelTemplateGUID],
SUGGESTED.[ExpansionGlobalID],
SUGGESTED.[Count],
CASE
WHEN SUGGESTED.[CountOverride] <= ISNULL(RECOMMENDED.[RecommendedMaxCount], SUGGESTED.[CountOverride])
THEN SUGGESTED.[CountOverride]
ELSE RECOMMENDED.[RecommendedMaxCount]
END AS [CountOverride]
FROM
(
SELECT
A.[ModelTemplateGUID],
A.[PlaceholderSectionMemberName] AS [ExpansionGlobalID],
MAX(E.[Count]) AS [Count],
(A.[Decile02] + 10) AS [CountOverride]
FROM
[dbo].[viewMEPHSectionAnalysis] AS A
INNER JOIN [dbo].[MEScoreExpansion] AS E WITH (READUNCOMMITTED) ON E.[GlobalID] = A.[PlaceholderSectionMemberName]
INNER JOIN [dbo].[viewMECell] AS C ON C.ExcelCellGUID = E.[ExcelCellGUID] AND C.[ModelTemplateGUID] = A.[ModelTemplateGUID]
GROUP BY
A.[ModelTemplateGUID],
A.[PlaceholderSectionMemberName],
A.[Decile01],
A.[Decile02]
HAVING
A.[Decile01] != A.[Decile02]
AND A.[Decile02] <= MAX(E.[Count]) - 10 - 25 -- count - padding - useful threshold
) AS SUGGESTED
LEFT JOIN [dbo].[MEScoreExpansionRecommendedMaxCount] AS RECOMMENDED ON RECOMMENDED.[SectionName] = SUGGESTED.[ExpansionGlobalID]
GO
---------------------------------------------
-- dbo.viewMEPHSectionAnalysisRecommendationOutliers
CREATE view dbo.viewMEPHSectionAnalysisRecommendationOutliers
as
select
P.ModelTemplateGUID,
MT.Name as ModelTemplateName,
P.PlanGUID,
P.Name as PlanName,
PHS.FriendlyName as ExpansionGlobalID,
max(AR.CountOverride) as ExpansionRecommendation,
count(*) as PlanCount,
max(AR.[Count]) as ExpansionMax
from
[dbo].[XPlan] P with (readuncommitted)
inner join [dbo].[EMFModelTemplate] MT with (readuncommitted) on MT.ModelTemplateGUID = P.ModelTemplateGUID
inner join [dbo].[ScoreFillin] FI with (readuncommitted) on FI.ModelGUID = P.PlanGUID
inner join [dbo].[MEPHSection] PHS with (readuncommitted) on PHS.PHSectionMemberGUID = FI.PlaceholderSectionMemberGUID and PHS.ModelTemplateGUID = P.ModelTemplateGUID
inner join [dbo].[viewMEPHSectionAnalysisRecommendation] AR on AR.ModelTemplateGUID = P.ModelTemplateGUID and AR.ExpansionGlobalID = PHS.FriendlyName
group by
P.ModelTemplateGUID,
MT.Name,
P.PlanGUID,
P.Name,
PHS.FriendlyName
having
count(*) > max(AR.CountOverride)
union all
select
MT.ModelTemplateGUID,
MT.Name as ModelTemplateName,
P.PlanGUID,
P.Name as PlanName,
PHS.FriendlyName as ExpansionGlobalID,
E.[Count] as ExpansionRecommendation,
count(*) as PlanCount,
E.[Count] as ExpansionMax
from
[dbo].[XPlan] P with (readuncommitted)
inner join [dbo].[EMFModelTemplate] MT with (readuncommitted) on MT.ModelTemplateGUID = P.ModelTemplateGUID
inner join [dbo].[ScoreFillin] FI with (readuncommitted) on FI.ModelGUID = P.PlanGUID
inner join [dbo].[MEPHSection] PHS with (readuncommitted) on PHS.PHSectionMemberGUID = FI.PlaceholderSectionMemberGUID and PHS.ModelTemplateGUID = P.ModelTemplateGUID
inner join (
select
C.ModelTemplateGUID,
E.GlobalID,
max(E.[Count]) as [Count]
from
[dbo].[MEScoreExpansion] E with (readuncommitted)
inner join [dbo].[viewMECell] C on C.ExcelCellGUID = E.ExcelCellGUID
group by
C.ModelTemplateGUID,
E.GlobalID) E on E.GlobalID = PHS.FriendlyName and E.ModelTemplateGUID = MT.ModelTemplateGUID
where
not exists(select 1 from [dbo].[viewMEPHSectionAnalysisRecommendation] AR where AR.ModelTemplateGUID = MT.ModelTemplateGUID and AR.ExpansionGlobalID = PHS.FriendlyName)
group by
MT.ModelTemplateGUID,
MT.Name,
P.PlanGUID,
P.Name,
PHS.FriendlyName,
E.[Count]
having
count(*) > E.[Count]
GO
---------------------------------------------
-- dbo.viewMEPHSectionAnalysis_InvalidConfigs
CREATE view dbo.viewMEPHSectionAnalysis_InvalidConfigs
AS
select
MT.ModelTemplateGUID,
MT.Name as ModelTemplateName,
P.PlanGUID,
P.Name as PlanName,
PHS.FriendlyName as ExpansionGlobalID,
E.[Count] as ExpansionRecommendation,
count(*) as PlanCount,
E.[Count] as ExpansionMax
from
[dbo].[XPlan] P with (readuncommitted)
inner join [dbo].[EMFModelTemplate] MT with (readuncommitted) on MT.ModelTemplateGUID = P.ModelTemplateGUID
inner join [dbo].[ScoreFillin] FI with (readuncommitted) on FI.ModelGUID = P.PlanGUID
inner join [dbo].[MEPHSection] PHS with (readuncommitted) on PHS.PHSectionMemberGUID = FI.PlaceholderSectionMemberGUID and PHS.ModelTemplateGUID = P.ModelTemplateGUID
inner join (
select
C.ModelTemplateGUID,
E.GlobalID,
max(E.[Count]) as [Count]
from
[dbo].[MEScoreExpansion] E with (readuncommitted)
inner join [dbo].[viewMECell] C on C.ExcelCellGUID = E.ExcelCellGUID
group by
C.ModelTemplateGUID,
E.GlobalID) E on E.GlobalID = PHS.FriendlyName and E.ModelTemplateGUID = MT.ModelTemplateGUID
where
not exists(select 1 from [dbo].[viewMEPHSectionAnalysisRecommendation] AR where AR.ModelTemplateGUID = MT.ModelTemplateGUID and AR.ExpansionGlobalID = PHS.FriendlyName)
group by
MT.ModelTemplateGUID,
MT.Name,
P.PlanGUID,
P.Name,
PHS.FriendlyName,
E.[Count]
having
count(*) > E.[Count]
GO
---------------------------------------------
-- dbo.viewMEPHSectionAnalysis_LargeDepartments
CREATE view dbo.viewMEPHSectionAnalysis_LargeDepartments
AS
select
P.ModelTemplateGUID,
MT.Name as ModelTemplateName,
P.PlanGUID,
P.Name as PlanName,
PHS.FriendlyName as ExpansionGlobalID,
max(AR.CountOverride) as ExpansionRecommendation,
count(*) as PlanCount,
max(AR.[Count]) as ExpansionMax
from
[dbo].[XPlan] P with (readuncommitted)
inner join [dbo].[EMFModelTemplate] MT with (readuncommitted) on MT.ModelTemplateGUID = P.ModelTemplateGUID
inner join [dbo].[ScoreFillin] FI with (readuncommitted) on FI.ModelGUID = P.PlanGUID
inner join [dbo].[MEPHSection] PHS with (readuncommitted) on PHS.PHSectionMemberGUID = FI.PlaceholderSectionMemberGUID and PHS.ModelTemplateGUID = P.ModelTemplateGUID
inner join [dbo].[viewMEPHSectionAnalysisRecommendation] AR on AR.ModelTemplateGUID = P.ModelTemplateGUID and AR.ExpansionGlobalID = PHS.FriendlyName
group by
P.ModelTemplateGUID,
MT.Name,
P.PlanGUID,
P.Name,
PHS.FriendlyName
having
count(*) > max(AR.CountOverride)
GO
---------------------------------------------
-- dbo.viewMEPHSectionDuplicates
create view dbo.viewMEPHSectionDuplicates
as
select
phs.*
from
[dbo].[MEPHSection] phs
where
exists(select 1 from [dbo].[MEPHSection] d where d.ModelTemplateGUID = phs.ModelTemplateGUID and d.PHSectionDimensionGUID = phs.PHSectionDimensionGUID and d.PHSectionMemberGUID = phs.PHSectionMemberGUID and d.PlanTypeGUID = phs.PlanTypeGUID group by d.ModelTemplateGUID, d.PHSectionDimensionGUID, d.PHSectionMemberGUID, d.PlanTypeGUID having count(*) > 1)
GO
---------------------------------------------
-- dbo.viewMEReportLinkTemplateMapping
CREATE view [dbo].[viewMEReportLinkTemplateMapping] as
select
map.ReportLinkTemplateMappingGUID,
map.ReportGUID,
map.CellGUID,
map.RowExpanded,
map.ReportParams,
sheet.ModelTemplateGUID as BookGUID,
sheet.Name as SheetName,
cell.ExcelSheetGUID,
cell.Row,
cell.Col
from
MEReportLinkTemplateMapping map
inner join MEExcelCell cell on map.CellGUID = cell.ExcelCellGUID
inner join EMFModelTemplateWorksheet sheet on cell.ExcelSheetGUID = sheet.WorksheetGUID
GO
---------------------------------------------
-- dbo.viewMEScoreExpansion
CREATE view [dbo].[viewMEScoreExpansion] as
select
scexp.*,
cell.ExcelSheetGUID,
cell.Row,
cell.Row2,
cell.Col,
sheet.Name as SheetName,
book.ModelTemplateGUID as ExcelBookGUID,
book.Name as BookName
from
MEScoreExpansion scexp
inner join MEExcelCell cell on scexp.excelcellguid = cell.ExcelCellGUID
inner join EMFModelTemplateWorksheet sheet on cell.ExcelSheetGUID = sheet.WorksheetGUID
inner join EMFModelTemplate book on sheet.ModelTemplateGUID = book.ModelTemplateGUID
GO
---------------------------------------------
-- dbo.viewMEScoreExpansionOutliers
create view dbo.viewMEScoreExpansionOutliers
as
select
p.Name as Budget,
phs.FriendlyName as ModelSection,
COUNT(*) as FillinCount,
mx.RecommendedMaxCount as MaxCount
from
dbo.MEScoreExpansionRecommendedMaxCount mx
inner join MEPHSection phs on phs.FriendlyName = mx.SectionName
inner join ScoreFillin fi on fi.PlaceholderSectionMemberGUID = phs.PHSectionMemberGUID
inner join XPlan p on p.PlanGUID = fi.ModelGUID
inner join EMFModelTemplate mt on mt.ModelTemplateGUID = p.ModelTemplateGUID
where
mt.Name like 'ob departmental%'
group by
p.Name,
phs.FriendlyName,
mx.RecommendedMaxCount
having
COUNT(*) > mx.RecommendedMaxCount
GO
---------------------------------------------
-- dbo.viewMEScoreExpansionOverride
CREATE view dbo.viewMEScoreExpansionOverride
as
select
EO.OverrideGUID,
EO.ExpansionProfileGUID,
EO.ExpansionGlobalID,
max(E.[Count]) as [Count],
EO.CountOverride
from
[dbo].[MEScoreExpansionOverride] EO with (readuncommitted)
inner join [dbo].[MEScoreExpansionProfile] EP with (readuncommitted) on EP.ExpansionProfileGUID = Eo.ExpansionProfileGUID
inner join [dbo].[MEScoreExpansion] E with (readuncommitted) on E.GlobalID = EO.ExpansionGlobalID
inner join [dbo].[viewMECell] C on C.ExcelCellGUID = E.ExcelCellGUID and C.ModelTemplateGUID = EP.ParentModelTemplateGUID
group by
EO.OverrideGUID,
EO.ExpansionProfileGUID,
EO.ExpansionGlobalID,
EO.CountOverride
GO
---------------------------------------------
-- dbo.viewMEScorePlaceholderLabel
CREATE view [dbo].[viewMEScorePlaceholderLabel] as
select
map.*,
sheet.ModelTemplateGUID as BookGUID,
sheet.Name as SheetName,
cell.ExcelSheetGUID,
cell.Row,
cell.Col
from
MEScorePlaceholderLabel map (readuncommitted)
inner join MEExcelCell cell (readuncommitted) on map.CellGUID = cell.ExcelCellGUID
inner join EMFModelTemplateWorksheet sheet (readuncommitted) on cell.ExcelSheetGUID = sheet.WorksheetGUID
GO
---------------------------------------------
-- dbo.viewMEScoreSource
CREATE view viewMEScoreSource as
select
ModelTemplateGUID as BookGUID, linksourceguid as SourceGUID, ParentScoreCompositeTableGUID as CompositeGUID, Name, IsSelf
from
EMFModelTemplateLinkSource
where
ParentScoreCompositeTableGUID <> '00000000-0000-0000-0000-000000000000'
GO
---------------------------------------------
-- dbo.viewMessageQueue
CREATE VIEW [dbo].[viewMessageQueue]
AS
SELECT TOP 100 PERCENT
t.Name as ThreadName,
m.subject as [Subject],
m.body as Body,
coalesce(mt.Name, '') as MessageTypeName,
coalesce(author.UserName, '') as Author,
m.datecreated as DateCreated,
m.hasattachments as HasAttachments,
u.UserName as RecipientUsername,
u.namefirst as RecipientFirstName,
u.namelast as RecipientLastName,
u.emailaddress as RecipientEmailAddress
FROM
msgmessage m inner join msgtopic t on t.topicguid = m.topicguid
inner join viewS3ACLSimple acl on acl.LootID = t.TopicGUID
inner join userprofile u on u.userguid = acl.UserGUID
LEFT join UserProfile author on m.AuthorGUID = author.UserGUID
left join MsgMessageType mt on mt.MessageTypeGUID = m.MessageTypeGUID
left join msgforum f on f.forumguid = t.forumguid
WHERE u.userguid != m.authorguid and m.issent = 0
GROUP BY
t.Name,
m.subject,
m.body,
mt.Name,
author.UserName,
m.datecreated,
m.hasattachments,
u.username,
u.namefirst,
u.namelast,
u.emailaddress
ORDER BY m.DateCreated
GO
---------------------------------------------
-- dbo.viewModelDependencies
CREATE view [dbo].[viewModelDependencies]
AS
select
EL.ModelGUID as [ModelGUID],
EL.ParentModelGUID as [ParentModelGUID]
from
EMFModelDataLink EL (readuncommitted)
where
exists(select 1 from XPlan P1 (readuncommitted) where P1.PlanGUID = EL.ModelGUID and IsDeletedPlan = 0)
and exists(select 1 from XPlan P2 (readuncommitted) where P2.PlanGUID = EL.ModelGUID and IsDeletedPlan = 0)
UNION ALL
select
FI.ModelGUID,
FI.FillinMemberGUID as ParentModelGUID
from
[dbo].[ScoreFillin] FI (readuncommitted)
where
exists(select 1 from XPlan P1 (readuncommitted) where P1.PlanGUID = FI.ModelGUID and IsDeletedPlan = 0)
and exists(select 1 from XPlan P2 (readuncommitted) where P2.PlanGUID = FI.FillinMemberGUID and IsDeletedPlan = 0)
GO
---------------------------------------------
-- dbo.viewModelSectionSecured
CREATE view dbo.viewModelSectionSecured
as
with ModelSectionInheritance as (
select
ms.ModelSectionGUID,
case when ms.ParentGUID != '00000000-0000-0000-0000-000000000000' and ms.IsInherit = 1 and isnull(pms.ModelSectionGUID, '00000000-0000-0000-0000-000000000000') != '00000000-0000-0000-0000-000000000000' then (
case when pms.ParentGUID != '00000000-0000-0000-0000-000000000000' and pms.IsInherit = 1 and isnull(ppms.ModelSectionGUID, '00000000-0000-0000-0000-000000000000') != '00000000-0000-0000-0000-000000000000' then (
case when ppms.ParentGUID != '00000000-0000-0000-0000-000000000000' and ppms.IsInherit = 1 and isnull(pppms.ModelSectionGUID, '00000000-0000-0000-0000-000000000000') != '00000000-0000-0000-0000-000000000000' then (
case when pppms.ParentGUID != '00000000-0000-0000-0000-000000000000' and pppms.IsInherit = 1 then pppms.ParentGUID else pppms.ModelSectionGUID end
) else ppms.ModelSectionGUID end
) else pms.ModelSectionGUID end
) else ms.ModelSectionGUID end as LootGUID
from
ModelSection ms
left join ModelSection pms on pms.ModelSectionGUID = ms.ParentGUID
left join ModelSection ppms on ppms.ModelSectionGUID = pms.ParentGUID
left join ModelSection pppms on pppms.ModelSectionGUID = ppms.ParentGUID
)
select
ms.ModelSectionGUID,
ms.Name,
ms.[Range],
ms.[Address],
ms.SheetGUID,
ms.ParentGUID,
msi.LootGUID,
ws.Name as SheetName,
acl.UserGUID,
isnull(acl.IsReadable, cast(1 as bit)) as IsReadable,
isnull(acl.IsWritable, cast(1 as bit)) as IsWritable
from
ModelSection ms with (readuncommitted)
inner join ModelSectionInheritance msi with (readuncommitted) on msi.ModelSectionGUID = ms.ModelSectionGUID
inner join EMFModelTemplateWorksheet ws with (readuncommitted) on ws.WorksheetGUID = ms.SheetGUID
inner join viewS3ACLSimple acl on acl.LootID = msi.LootGUID
where
acl.IsReadable = 0 or acl.IsWritable = 0
union all
select
ws.WorksheetGUID as ModelSectionGUID,
ws.Name,
'' as [Range],
'' as [Address],
ws.WorksheetGUID as SheetGUID,
dbo.ZeroGUID() as ParentGUID,
ws.WorksheetGUID as LootGUID,
ws.Name as SheetName,
acl.UserGUID,
isnull(acl.IsReadable, cast(1 as bit)) as IsReadable,
isnull(acl.IsWritable, cast(1 as bit)) as IsWritable
from
EMFModelTemplateWorksheet ws with (readuncommitted)
inner join viewS3ACLSimple acl on acl.LootID = ws.WorksheetGUID
where
acl.IsReadable = 0 or acl.IsWritable = 0
GO
---------------------------------------------
-- dbo.viewMsgEmailActivity
CREATE VIEW [dbo].[viewMsgEmailActivity]
AS
SELECT
ea.EmailActivityID,
ea.EmailSummaryID,
ea.UserGUID,
ea.EmailAddress,
u.UserName,
ea.MessageGUID,
m.Subject,
ea.Timestamp,
ea.IsSuccess,
ea.Description
FROM
dbo.MsgEmailActivity ea (readuncommitted)
left join MsgMessage m (readuncommitted) on ea.MessageGUID = m.MessageGUID
left join UserProfile u (readuncommitted) on ea.UserGUID = u.UserGUID
GO
---------------------------------------------
-- dbo.viewOMZProviderSettings
CREATE view [dbo].[viewOMZProviderSettings]
as
SELECT [ProviderSettingsGUID]
,[Name]
,[AssemblyQualifiedName]
,cast([Metadata] as nvarchar(max)) as Metadata
,[ProviderAssemblyQualifiedName]
,[PoolDimensionGUID]
,[DefaultEvaluatorRoleGUID]
,[DefaultGridTemplateGUID]
,[DefaultApprovedFieldGUID]
,[DefaultScoringReportGUID]
,[DefaultPlanTypeGUID]
FROM [dbo].[OMZProviderSettings]
GO
---------------------------------------------
-- dbo.viewPlaceholders
CREATE view [dbo].[viewPlaceholders] with schemabinding as
select
sl.listguid as PlaceholderDimensionGUID,
slm.listmemberguid as PlaceholderMemberGUID,
sortorderfullpath as SortOrder,
slm.parentlistmemberguid as PlaceholderParentMemberGUID,
ROW_NUMBER() over (partition by slm.parentlistmemberguid order by sortorderfullpath) -1 as PHIndex,
slm.Name as PlaceholderMember
from
dbo.securelist sl
inner join dbo.securelistmember slm on sl.listguid = slm.listguid
where
sl.isplaceholder = 1
and slm.outlinelevel = 1
GO
---------------------------------------------
-- dbo.viewPlanLocks
create view viewPlanLocks
as
select
P.PlanGUID,
dbo.GetPlanName(P.PlanGUID) as PlanName,
L.UserGUID,
UP.UserName,
L.DateLocked,
L.DateLastActive
from
Lock L
inner join XPlan P on L.ItemGUID = P.PlanGUID
left join UserProfile UP on L.UserGUID = UP.UserGUID
where
L.LockGroup = 'PlanLock'
GO
---------------------------------------------
-- dbo.viewPlanTypeModelTemplate
CREATE view dbo.viewPlanTypeModelTemplate as --with schemabinding as
select
p.PlanTypeGUID,
p.ModelTemplateGUID,
mt.DefaultFormGUID,
mt.Description,
mt.IsExpanded,
mt.IsNewLabelsOnly,
mt.IsPublished,
mt.IsSafeModeOn,
mt.Name,
mt.Type,
mt.Version
from
PlanTypeModelTemplateLink p
inner join EMFModelTemplate mt on p.ModelTemplateGUID = mt.ModelTemplateGUID
GO
---------------------------------------------
-- dbo.viewPlanTypeWorkflowMapLink
CREATE view [dbo].[viewPlanTypeWorkflowMapLink] as
SELECT
WML.PlanTypeGuid,
WML.WorkflowMapGuid,
WML.IsRequiredWorkflow,
WM.Name as WorkflowName,
PT.Name as PlanTypeName
FROM
PlanTypeWorkflowMapLink WML
INNER JOIN WFWorkflowMap WM on WML.WorkflowMapGUID = WM.WorkflowMapGUID
INNER JOIN PlanType PT ON WML.PlanTypeGUID = PT.PlanTypeGUID
GO
---------------------------------------------
-- dbo.viewPlans
CREATE view [dbo].[viewPlans] as
select
planguid,
p.Name ,
p.plantypeguid,
pt.name as PlanTypeName,
p.ModelTemplateGUID,
mt.Name as TemplateName,
p.DefaultFormDefGUID,
f.Name as FormName,
p.CachedLootID,
l.PermissionSetID,
ps.Name as PermissionSet,
pt.DimensionGUID,
sd.FriendlyName as DimensionName,
p.DateCreated,
p.IsDeletedPlan
from
xplan p (readuncommitted)
left join plantype pt (readuncommitted) on pt.plantypeguid = p.plantypeguid
left join EMFModelTemplate mt (readuncommitted) on p.ModelTemplateGUID = mt.ModelTemplateGUID
left join FE2Form f (readuncommitted) on p.DefaultFormDefGUID = f.FORMGUID
left join ScoreDimension sd (readuncommitted) on pt.DimensionGUID = sd.DimensionGUID
left join S3Loot l (readuncommitted) on l.LootID = p.CachedLootID
left join S3PermissionSet ps (readuncommitted) on ps.PermissionSetID = l.PermissionSetID
GO
---------------------------------------------
-- dbo.viewPlansRecentlyOpened
CREATE VIEW dbo.viewPlansRecentlyOpened
AS
select A.*, P.Name, P.PlanGUID, U.UserGUID
from ActionLog A
inner join XPlan P on A.Details = CAST(P.PlanGUID as nvarchar(36))
inner join UserProfile U on U.UserName = A.Username
where A.Action='Form Edit' and A.SubAction='Initial Load' and DATEDIFF(DD, DateTimeStamp, GETDATE()) < 5
GO
---------------------------------------------
-- dbo.viewREClientReportParameter_Broken
CREATE view dbo.viewREClientReportParameter_Broken
as
select
'Invalid attribute' as Issue,
r.Name as ReportName,
p.*
from
REReport r
inner join REClientReportParameter p on p.ReportGUID = r.ReportGUID
where
exists (select 1 from REClientReportDataSourceLink ds where ds.ReportGUID = r.ReportGUID and ds.ProviderAssemblyQualifiedName like '%SQLProvider%')
and not exists(
select 1
from
REClientReportDataSourceLink ds
inner join DataView dv on dv.DataViewGUID = ds.DataSourceGUID
inner join RESQLReportRegisteredDimension rd on rd.DataViewGUID = dv.DataViewGUID and cast(rd.DimensionGUID as nvarchar(36)) = p.DimensionID
inner join RESQLReportRegisteredAttribute ra on ra.RegisteredDimensionGUID = rd.RegisteredDimensionGUID and cast(ra.AttributeGUID as nvarchar(36)) = p.AttributeID
inner join viewScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
where
ltrim(p.ColumnName) = case when ra.ColumnAlias = '' then a.SQLColumnName else ltrim(ra.ColumnAlias) end
and ds.ReportGUID = r.ReportGUID
)
and p.SourceTypeValue = 0
union all
--MR-specific parameter issues
select
'Invalid selection' as Issue,
r.Name as ReportName,
p.*
from
REReport r
inner join REClientReportParameter p on p.ReportGUID = r.ReportGUID
where
(p.DimensionID = 'ae2104b1-e2d5-4cc0-88a5-e729b744fde7' and cast(p.parameterxml as nvarchar(max)) like '%dept|%' and cast(p.parameterxml as nvarchar(max)) not like '%mrdept|%')
or (p.parameterxml like '%MRDEPT|KEY|%' and p.parameterxml like '%MRDepartmentID%' and p.parameterxml not like '%MRDEPT|KEY|' + (select cast(defaultkeyguid as nvarchar(36)) from scoredimension where friendlyname = 'mr department') + '%' )
GO
---------------------------------------------
-- dbo.viewREClientReportSectionAttribute_Broken
CREATE view dbo.viewREClientReportSectionAttribute_Broken
as
select
r.ReportGUID,
r.Name as ReportName,
sa.*
from
REReport r
inner join REClientReportSectionLink sl on sl.ReportGUID = r.ReportGUID
inner join REClientReportSectionAttribute sa on sa.ClientReportSectionGUID = sl.ClientReportSectionGUID
where
exists (select 1 from REClientReportDataSourceLink ds where ds.ReportGUID = r.ReportGUID and ds.ProviderAssemblyQualifiedName like '%SQLProvider%')
and not exists(
select 1
from
REClientReportDataSourceLink ds
inner join DataView dv on dv.DataViewGUID = ds.DataSourceGUID
inner join RESQLReportRegisteredDimension rd on rd.DataViewGUID = dv.DataViewGUID and cast(rd.DimensionGUID as nvarchar(36)) = sa.DimensionID
inner join RESQLReportRegisteredAttribute ra on ra.RegisteredDimensionGUID = rd.RegisteredDimensionGUID and cast(ra.AttributeGUID as nvarchar(36)) = sa.AttributeID
inner join viewScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
where
ltrim(sa.ColumnName) = case when ra.ColumnAlias = '' then a.SQLColumnName else ltrim(ra.ColumnAlias) end
and ds.ReportGUID = r.ReportGUID
)
GO
---------------------------------------------
-- dbo.viewRESQLReportDisplayColumn_Broken
CREATE view dbo.viewRESQLReportDisplayColumn_Broken
as
with cols_physical as (
select
t.object_id,
s.name + '.' + t.name as obj,
c.name as col
from
sys.columns c
inner join sys.tables t on t.object_id = c.object_id
inner join sys.schemas s on s.schema_id = t.schema_id
inner join dbo.dataview dv on s.name + '.' + t.name = replace(replace(dv.SQLViewName, '[', ''), ']', '')
union all
select
v.object_id,
s.name + '.' + v.name as obj,
c.name as col
from
sys.columns c
inner join sys.views v on v.object_id = c.object_id
inner join sys.schemas s on s.schema_id = v.schema_id
inner join dbo.dataview dv on s.name + '.' + v.name = replace(replace(dv.SQLViewName, '[', ''), ']', '')
),
cols_registered as (
select
ax.attributeguid,
rdx.dataviewguid,
case when rax.columnalias = '' then ax.sqlcolumnname else ltrim(rax.columnalias) end as columnname
from
resqlreportregistereddimension rdx
inner join resqlreportregisteredattribute rax on rax.registereddimensionguid = rdx.registereddimensionguid
inner join viewscoreattribute ax on ax.attributeguid = rax.attributeguid
)
select
r.ReportGUID,
r.Name as ReportName,
dc.*
from
REReport r
inner join RESQLReportSetup rs on rs.ReportGUID = r.ReportGUID
inner join DataView dv on dv.dataviewguid = rs.dataviewguid
inner join resqlreportdisplaycolumn dc on dc.sqlreportsetupguid = rs.sqlreportsetupguid
left join cols_physical cp on cp.obj = replace(replace(dv.SQLViewName, '[', ''), ']', '') and cp.col = ltrim(dc.columnname)
left join cols_registered cr on cr.dataviewguid = dv.dataviewguid and cr.columnname = ltrim(dc.columnname)
where
cp.object_id is null
and cr.attributeguid is null
GO
---------------------------------------------
-- dbo.viewRESQLReportFilterColumn_Broken
CREATE view dbo.viewRESQLReportFilterColumn_Broken
as
with cols_physical as (
select
t.object_id,
s.name + '.' + t.name as obj,
c.name as col
from
sys.columns c
inner join sys.tables t on t.object_id = c.object_id
inner join sys.schemas s on s.schema_id = t.schema_id
inner join dbo.dataview dv on s.name + '.' + t.name = replace(replace(dv.SQLViewName, '[', ''), ']', '')
union all
select
v.object_id,
s.name + '.' + v.name as obj,
c.name as col
from
sys.columns c
inner join sys.views v on v.object_id = c.object_id
inner join sys.schemas s on s.schema_id = v.schema_id
inner join dbo.dataview dv on s.name + '.' + v.name = replace(replace(dv.SQLViewName, '[', ''), ']', '')
),
cols_registered as (
select
ax.attributeguid,
rdx.dataviewguid,
case when rax.columnalias = '' then ax.sqlcolumnname else ltrim(rax.columnalias) end as columnname
from
resqlreportregistereddimension rdx
inner join resqlreportregisteredattribute rax on rax.registereddimensionguid = rdx.registereddimensionguid
inner join viewscoreattribute ax on ax.attributeguid = rax.attributeguid
)
select
'Invalid attribute' as Issue,
r.ReportGUID,
r.Name as ReportName,
dc.*
from
REReport r
inner join RESQLReportSetup rs on rs.ReportGUID = r.ReportGUID
inner join DataView dv on dv.dataviewguid = rs.dataviewguid
inner join resqlreportFiltercolumn dc on dc.sqlreportsetupguid = rs.sqlreportsetupguid
left join cols_physical cp on cp.obj = replace(replace(dv.SQLViewName, '[', ''), ']', '') and cp.col = ltrim(dc.columnname)
left join cols_registered cr on cr.dataviewguid = dv.dataviewguid and cr.columnname = ltrim(dc.columnname)
where
cp.object_id is null
and cr.attributeguid is null
union all
--MR-specific issues
select
'Invalid selection' as Issue,
r.ReportGUID,
r.Name as ReportName,
fc.*
from
resqlreportsetup rs
inner join rereport r on r.reportguid = rs.reportguid
inner join RESQLReportFilterColumn fc on fc.SQLReportSetupGUID = rs.SQLReportSetupGUID
where
exists(select 1 from RESQLReportRegisteredDimension rd where rd.DataViewGUID = rs.DataViewGUID and rd.DimensionGUID = 'AE2104B1-E2D5-4CC0-88A5-E729B744FDE7')
and fc.ParameterXML like '%DEPT|%' and fc.ParameterXML not like '%MRDEPT|%'
GO
---------------------------------------------
-- dbo.viewRESQLReportRegisteredAttribute
create view dbo.viewRESQLReportRegisteredAttribute
as
select
dv.DataViewGUID,
dv.Name,
dv.SQLViewName,
rd.RegisteredDimensionGUID,
rd.DimensionGUID,
rd.KeyGUID,
rd.KeyColumnName,
ra.RegisteredAttributeGUID,
ra.AttributeGUID,
ra.ColumnAlias
from
dbo.DataView dv with (readuncommitted)
inner join dbo.RESQLReportRegisteredDimension rd with (readuncommitted) on rd.DataViewGUID = dv.DataViewGUID
inner join dbo.RESQLReportRegisteredAttribute ra with (readuncommitted) on ra.RegisteredDimensionGUID = rd.RegisteredDimensionGUID
GO
---------------------------------------------
-- dbo.viewRESQLReportRegisteredAttribute_ByReport
CREATE view dbo.viewRESQLReportRegisteredAttribute_ByReport
as
select distinct
r.ReportGUID,
a.AttributeGUID,
case when ra.ColumnAlias = '' then a.SQLColumnName else ltrim(ra.ColumnAlias) end as ColumnName
from
REReport r
inner join REClientReportDataSourceLink ds on ds.ReportGUID = r.ReportGUID
inner join RESQLReportRegisteredDimension rd on rd.DataViewGUID = ds.DataSourceGUID
inner join RESQLReportRegisteredAttribute ra on rd.RegisteredDimensionGUID = ra.RegisteredDimensionGUID
inner join ScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
union all
select distinct
r.ReportGUID,
a.AttributeGUID,
case when ra.ColumnAlias = '' then a.SQLColumnName else ltrim(ra.ColumnAlias) end as ColumnName
from
REReport r
inner join REDataSource ds on ds.ReportGUID = r.ReportGUID
inner join RESQLReportSetup rs on rs.ReportGUID = ds.SourceGUID
inner join RESQLReportRegisteredDimension rd on rd.DataViewGUID = rs.DataViewGUID
inner join RESQLReportRegisteredAttribute ra on rd.RegisteredDimensionGUID = ra.RegisteredDimensionGUID
inner join ScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
union all
select distinct
r.ReportGUID,
a.AttributeGUID,
case when ra.ColumnAlias = '' then a.SQLColumnName else ltrim(ra.ColumnAlias) end as ColumnName
from
REReport r
inner join RESQLReportSetup rs on rs.ReportGUID = r.ReportGUID
inner join RESQLReportRegisteredDimension rd on rd.DataViewGUID = rs.DataViewGUID
inner join RESQLReportRegisteredAttribute ra on rd.RegisteredDimensionGUID = ra.RegisteredDimensionGUID
inner join ScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
GO
---------------------------------------------
-- dbo.viewRESQLReportRegisteredAttribute_Duplicates
create view dbo.viewRESQLReportRegisteredAttribute_Duplicates
as
select
dv.DataViewGUID,
dv.Name,
case when ra.ColumnAlias = '' then a.SQLColumnName else ltrim(ra.ColumnAlias) end as Attribute,
count(*) as DuplicateCount
from
RESQLReportRegisteredAttribute ra
inner join RESQLReportRegisteredDimension rd on rd.RegisteredDimensionGUID = ra.RegisteredDimensionGUID
inner join DataView dv on dv.DataViewGUID = rd.DataViewGUID
inner join viewScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
group by
dv.DataViewGUID,
dv.Name,
case when ra.ColumnAlias = '' then a.SQLColumnName else ltrim(ra.ColumnAlias) end
having
count(*) > 1
GO
---------------------------------------------
-- dbo.viewRESQLReportRegisteredDimension
CREATE view [dbo].[viewRESQLReportRegisteredDimension] as
select
dv.name as DataviewName,
dv.sqlviewname,
sd.friendlyname as ScoreDimension,
sa.friendlyname as AttributeKeyName,
rd.* from dbo.RESQLReportRegisteredDimension rd
left join dataview dv
on dv.dataviewguid = rd.dataviewguid
left join scoredimension sd
on sd.dimensionguid = rd.dimensionguid
left join scoreattribute sa
on sa.attributeguid = rd.keyguid
GO
---------------------------------------------
-- dbo.viewRESortingParameter_Broken
CREATE view dbo.viewRESortingParameter_Broken
as
select
r.ReportGUID,
r.Name as ReportName,
ds.SourceGUID as DataViewGUID,
p.*
from
REDataSource ds
inner join REReport r on r.ReportGUID = ds.ReportGUID
inner join RESortingParameter p on p.DataSourceGUID = ds.DataSourceGUID
where
not exists(
select 1
from
RESQLReportDisplayColumn dc
inner join RESQLReportSetup rs on dc.sqlreportsetupguid = rs.sqlreportsetupguid and rs.reportguid = ds.sourceguid
where
dc.columnname = p.columnname
)
GO
---------------------------------------------
-- dbo.viewRandomNumber
CREATE VIEW viewRandomNumber
AS
SELECT RAND() as RandNumber
GO
---------------------------------------------
-- dbo.viewReportRunHistory
CREATE VIEW [dbo].[viewReportRunHistory]
AS
select
L.Username as [UserName],
case L.Action
when 'ZEROVIEWER' then 'Excel'
when 'Excel Reporter' then 'Excel'
when 'SQL Report' then 'SQL'
else 'Not Specified'
end as [Report Type],
replace(coalesce(R.Name, L.SubAction) , 'BATCH_', '')as [ReportName],
L.DatetimeStamp as [LaunchTime],
L.Duration/1000 as [DurationInSeconds]
from
ActionLog L (nolock)
inner join REReport R on RIGHT(L.SubAction, 36) = cast(R.ReportGUID as nvarchar(36)) or replace(L.SubAction, 'BATCH_', '')=R.Name
where
L.Action in ('ZEROVIEWER', 'Excel Reporter', 'SQL Report')
and L.SubAction not like 'DrillDown%'
GO
---------------------------------------------
-- dbo.viewRoleVisibilityRule
CREATE view dbo.viewRoleVisibilityRule as
select
ISNULL(rvr.RoleVisibilityRuleGUID, newid()) as RoleVisibilityRuleGUID
,ps.PermissionSetID as PermissionSetID
,ps.RoleID as RoleID
,ps.RoleName as RoleName
,ISNULL(rvr.UserGroupGUID , '00000000-0000-0000-0000-000000000001') as UserGroupGUID
,ISNULL(rvr.IsVisible, 1) as IsVisible
,cast(case when rvr.IsVisible is null then 1 else 0 end as bit) as IsViewGenerated
from [dbo].[RoleVisibilityRule] rvr
right join [dbo].[viewS3PermissionSet] ps on rvr.PermissionSetID = ps.PermissionSetID and rvr.RoleID = ps.RoleID
GO
---------------------------------------------
-- dbo.viewS3ACL
CREATE view [dbo].[viewS3ACL] as
SELECT
il.MemberGUID AS UserGUID,
acl.LootID,
acl.LootGroupPrefix,
case when sum(acl.ReadAllowpts) > sum(acl.ReadDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsReadable,
case when sum(acl.WriteAllowpts) > sum(acl.WriteDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsWritable,
case when sum(acl.SecureAllowpts) > sum(acl.SecureDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsSecurable,
case when sum(acl.DeleteAllowpts) > sum(acl.DeleteDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsDeletable,
case when sum(acl.CreateAllowpts) > sum(acl.CreateDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsCreatable
FROM
(
SELECT
RA.IdentityGUID,
L.LootID,
L.LootGroupPrefix,
ReadAllowPts,
ReadDenyPts,
WriteAllowPts,
WriteDenyPts,
SecureAllowPts,
SecureDenyPts,
DeleteAllowPts,
DeleteDenyPts,
CreateAllowPts,
CreateDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) ON acl.identityguid = il.GroupingGUID
GROUP BY
il.MemberGUID,
acl.LootID,
acl.LootGroupPrefix
GO
---------------------------------------------
-- dbo.viewS3ACLDepartment
CREATE view [dbo].[viewS3ACLDepartment] as
SELECT
il.MemberGUID as UserGUID,
Cast(Replace(LootID, 'DEPT|', '') as int) as DepartmentID,
1 as IsReadable,
case when sum(acl.WriteAllowpts) > sum(acl.WriteDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsWritable
FROM
(
SELECT
RA.IdentityGUID,
L.LootID,
ReadAllowPts,
ReadDenyPts,
WriteAllowPts,
WriteDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
where L.LootGroupPrefix='DEPT'
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) ON acl.identityguid = il.GroupingGUID
GROUP BY
il.MemberGUID,
acl.LootID
HAVING
sum(ReadAllowPts) > sum(ReadDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLDepartmentForOB
CREATE view [dbo].[viewS3ACLDepartmentForOB] as
SELECT
il.MemberGUID as UserGUID,
Cast(Replace(LootID, 'DEPT|', '') as int) as DepartmentID,
1 as IsReadable,
case when sum(acl.WriteAllowpts) > sum(acl.WriteDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsWritable
FROM
(
SELECT
RA.IdentityGUID,
L.LootID,
ReadAllowPts,
ReadDenyPts,
WriteAllowPts,
WriteDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
INNER JOIN dbo.UserRole AS UR ON UR.RoleID = RA.RoleID
where L.LootGroupPrefix='DEPT' and ur.Category = 'OB'
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) ON acl.identityguid = il.GroupingGUID
GROUP BY
il.MemberGUID,
acl.LootID
HAVING
sum(ReadAllowPts) > sum(ReadDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLDetail
CREATE view [dbo].[viewS3ACLDetail]
as
SELECT
IL.MemberGUID as UserGUID,
up.NameFull as UserName,
IL.Distance,
IL.GroupingGUID as IdentityGUID,
coalesce(ug.Name,up2.namefull) as IdentityName,
RA.RoleID,
ur.Name as RoleName,
L.LootID,
LG.LootGroupID,
P.ReadAllowPts as ReadAllowPts,
P.ReadDenyPts as ReadDenyPts,
P.WriteAllowPts as WriteAllowPts,
P.WriteDenyPts as WriteDenyPts,
P.SecureAllowPts as SecureAllowPts,
P.SecureDenyPts as SecureDenyPts,
P.DeleteAllowPts as DeleteAllowPts,
P.DeleteDenyPts as DeleteDenyPts,
P.CreateAllowPts as CreateAllowPts,
P.CreateDenyPts as CreateDenyPts
FROM
dbo.S3LootGroup LG
INNER JOIN dbo.S3Loot L on L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA on LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3IdentityLink IL on IL.GroupingGUID = RA.IdentityGUID
inner JOIN dbo.S3Permission P on RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
LEFT JOIN UserGroup ug on IL.GroupingGUID = ug.UserGroupGUID
LEFT JOIN UserProfile up on IL.MemberGUID = up.UserGUID
LEFT JOIN UserProfile up2 on IL.GroupingGUID = up2.UserGUID
LEFT JOIN UserRole ur on RA.RoleID = ur.RoleID
--WHERE
-- IL.IsUser = 1 --slows it down cause it goes out of order, filtering first on this :(
/*
create unique clustered index idx_s3acl on dbo.viewS3ACLsb (userguid, lootid)
*/
GO
---------------------------------------------
-- dbo.viewS3ACLRead
------------------------------------------------------------------------------------------------------------
CREATE view [dbo].[viewS3ACLRead] as
select
il.MemberGUID as UserGUID,
LootID
from
(SELECT
RA.IdentityGUID,
L.LootID,
ReadAllowPts,
ReadDenyPts,
WriteAllowPts,
WriteDenyPts,
SecureAllowPts,
SecureDenyPts,
DeleteAllowPts,
DeleteDenyPts,
CreateAllowPts,
CreateDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN
dbo.S3Loot L WITH (READUNCOMMITTED)
ON L.LootID = LG.LootID
INNER JOIN
dbo.S3RoleAssignment RA WITH (READUNCOMMITTED)
ON LG.LootGroupID = RA.LootGroupID
INNER JOIN
dbo.S3Permission P WITH (READUNCOMMITTED)
ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID) AS acl
inner join
dbo.S3IdentityLink il on acl.identityguid = il.GroupingGUID
group by
il.MemberGUID,
LootID
having
sum(ReadAllowPts) > sum(ReadDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLReadDepartment
CREATE view [dbo].[viewS3ACLReadDepartment] as
select
il.MemberGUID as UserGUID,
Cast(Replace(LootID, 'DEPT|', '') as int) as DepartmentID
from
(
SELECT
RA.IdentityGUID,
L.LootID,
ReadAllowPts,
ReadDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
where L.LootGroupPrefix='DEPT'
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) on acl.identityguid = il.GroupingGUID
group by
il.MemberGUID,
LootID
having
sum(ReadAllowPts) > sum(ReadDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLReadDepartmentForMRRoles
CREATE VIEW [dbo].[viewS3ACLReadDepartmentForMRRoles] as
/** Change History
**************************************************************
** CID Date Author WI Description
** 1 2022-06-27 HV JAZZ-39147 PR Roles - Prepare databases for MR PR security separation
*************************************************************/
SELECT
DISTINCT
il.MemberGUID as UserGUID,
Cast(Replace(LootID, 'MRDEPT|', '') as int) as DepartmentID
FROM
(
SELECT
RA.IdentityGUID,
L.LootID,
P.ReadAllowPts,
P.ReadDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
INNER JOIN dbo.UserRole AS UR ON UR.RoleID = RA.RoleID
WHERE L.LootGroupPrefix='MRDEPT' AND UR.Category = 'MR'
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) on acl.identityguid = il.GroupingGUID
INNER JOIN dbo.UserProfile UP ON up.UserGUID = il.MemberGUID
GROUP BY
il.MemberGUID,
LootID
HAVING
SUM(acl.ReadAllowPts) > SUM(acl.ReadDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLReadDepartmentForPRRoles
CREATE VIEW [dbo].[viewS3ACLReadDepartmentForPRRoles] as
/** Change History
**************************************************************
** CID Date Author WI Description
** 1 2022-06-27 HV JAZZ-39147 PR Roles - Prepare databases for MR PR security separation
*************************************************************/
SELECT
DISTINCT
il.MemberGUID as UserGUID,
Cast(Replace(LootID, 'MRDEPT|', '') as int) as DepartmentID
FROM
(
SELECT
RA.IdentityGUID,
L.LootID,
P.ReadAllowPts,
P.ReadDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
INNER JOIN dbo.UserRole AS UR ON UR.RoleID = RA.RoleID
WHERE L.LootGroupPrefix='MRDEPT' AND UR.Category = 'PR'
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) on acl.identityguid = il.GroupingGUID
INNER JOIN dbo.UserProfile UP ON up.UserGUID = il.MemberGUID
GROUP BY
il.MemberGUID,
LootID
HAVING
SUM(acl.ReadAllowPts) > SUM(acl.ReadDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLReadMRDepartment
Create view [dbo].[viewS3ACLReadMRDepartment] as
select
distinct
il.MemberGUID as UserGUID,
up.EmailAddress,
Cast(Replace(Replace(LootID, 'MRDEPT|', ''), 'DEPT|', '') as int) as DepartmentID
from
(
SELECT
RA.IdentityGUID,
L.LootID,
ReadAllowPts,
ReadDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
where L.LootGroupPrefix='MRDEPT' or L.LootGroupPrefix='DEPT'
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) on acl.identityguid = il.GroupingGUID
INNER JOIN dbo.UserProfile UP ON up.UserGUID = il.MemberGUID
group by
il.MemberGUID,
up.EmailAddress,
LootID
having
sum(ReadAllowPts) > sum(ReadDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLReadMROnlyDepartment
CREATE VIEW [dbo].[viewS3ACLReadMROnlyDepartment] as
/** Change History
**************************************************************
** CID Date Author WI Description
** 1 2021-02-02 KF JAZZ-14166 MR - Performance - Security / Dashboard Optimizations
*************************************************************/
SELECT
DISTINCT
il.MemberGUID as UserGUID,
Cast(Replace(LootID, 'MRDEPT|', '') as int) as DepartmentID
FROM
(
SELECT
RA.IdentityGUID,
L.LootID,
P.ReadAllowPts,
P.ReadDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
WHERE L.LootGroupPrefix='MRDEPT'
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) on acl.identityguid = il.GroupingGUID
INNER JOIN dbo.UserProfile UP ON up.UserGUID = il.MemberGUID
GROUP BY
il.MemberGUID,
LootID
HAVING
SUM(acl.ReadAllowPts) > SUM(acl.ReadDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLReadWMOnlyDepartment
CREATE VIEW [dbo].[viewS3ACLReadWMOnlyDepartment] as
SELECT DISTINCT
il.MemberGUID as UserGUID,
Cast(Replace(LootID, 'DEPT|', '') as int) as DepartmentID
FROM
(
SELECT
RA.IdentityGUID,
L.LootID,
P.ReadAllowPts,
P.ReadDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED)
ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED)
ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.USERROLE RR WITH (READUNCOMMITTED)
ON RA.RoleID = RR.RoleID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED)
ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
WHERE RR.Category='WM' AND L.LootGroupPrefix='DEPT'
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED)
ON acl.identityguid = il.GroupingGUID
INNER JOIN dbo.UserProfile UP ON
UP.UserGUID = il.MemberGUID
GROUP BY
il.MemberGUID,
LootID
HAVING SUM(acl.ReadAllowPts) > SUM(acl.ReadDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLSimple
CREATE view dbo.viewS3ACLSimple
as
SELECT
IL.MemberGUID as UserGUID,
P.LootID as LootID,
cast(sum(cast(P.ReadValue as int)) as bit) as IsReadable,
cast(sum(cast(P.WriteValue as int)) as bit) as IsWritable,
cast(sum(cast(P.SecureValue as int)) as bit) as IsSecurable
FROM
dbo.UserProfile U with (readuncommitted)
INNER JOIN dbo.S3IdentityLink IL with (readuncommitted) on U.UserGUID = IL.MemberGUID
inner join dbo.S3SimplePermission P with (readuncommitted) on P.IdentityGUID = IL.GroupingGUID
GROUP BY
IL.MemberGUID, P.LootID
GO
---------------------------------------------
-- dbo.viewS3ACLWrite
------------------------------------------------------------------------------------------------------------
CREATE view [dbo].[viewS3ACLWrite] as
select
il.MemberGUID as UserGUID,
LootID
from
(SELECT
RA.IdentityGUID,
L.LootID,
ReadAllowPts,
ReadDenyPts,
WriteAllowPts,
WriteDenyPts,
SecureAllowPts,
SecureDenyPts,
DeleteAllowPts,
DeleteDenyPts,
CreateAllowPts,
CreateDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN
dbo.S3Loot L WITH (READUNCOMMITTED)
ON L.LootID = LG.LootID
INNER JOIN
dbo.S3RoleAssignment RA WITH (READUNCOMMITTED)
ON LG.LootGroupID = RA.LootGroupID
INNER JOIN
dbo.S3Permission P WITH (READUNCOMMITTED)
ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID) AS acl
inner join
dbo.S3IdentityLink il on acl.identityguid = il.GroupingGUID
group by
il.MemberGUID,
LootID
having
sum(WriteAllowPts) > sum(WriteDenyPts)
GO
---------------------------------------------
-- dbo.viewS3ACLWriteDepartment
CREATE view [dbo].[viewS3ACLWriteDepartment] as
select
il.MemberGUID as UserGUID,
Cast(Replace(LootID, 'DEPT|', '') as int) as DepartmentID
from
(
SELECT
RA.IdentityGUID,
L.LootID,
WriteAllowPts,
WriteDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
where L.LootGroupPrefix='DEPT'
) AS acl
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) on acl.identityguid = il.GroupingGUID
group by
il.MemberGUID,
LootID
having
sum(WriteAllowPts) > sum(WriteDenyPts)
GO
---------------------------------------------
-- dbo.viewS3GroupAssignment
CREATE view [dbo].[viewS3GroupAssignment] as
select
UG.UserGroupGUID,
UG.Name as UserGroupName,
UP.UserGUID as UserGUID,
UP.NameFirst + ' ' + UP.NameLast as UserName
from
S3IdentityLink IL
inner join UserGroup UG with (readuncommitted) on UG.UserGroupGUID = IL.GroupingGUID
inner join UserProfile UP with (readuncommitted) on UP.UserGUID = IL.MemberGUID
GO
---------------------------------------------
-- dbo.viewS3IdentityLinkOrphans
CREATE view viewS3IdentityLinkOrphans
as
select
il.*,
'Broken Link' as Reason
from
[dbo].[S3IdentityLink] il (readuncommitted)
left join [dbo].[S3IdentityLink] p (readuncommitted) on p.Fullpath = replace(il.Fullpath, '\' + cast(il.GroupingGUID as nvarchar(36)), '')
where
il.Distance > 0
and p.MemberGUID is null
union all
select
il.*,
'Invalid Group' as Reason
from
[dbo].[S3IdentityLink] il (readuncommitted)
where
il.MemberGUID != il.GroupingGUID
and il.GroupingGUID not in(select ug.UserGroupGUID from [dbo].[UserGroup] ug)
union all
select
il.*,
'Missing Member' as Reason
from
[dbo].[S3IdentityLink] il (readuncommitted)
where
not exists (select 1 from [dbo].[UserProfile] up (readuncommitted) where up.UserGUID = il.MemberGUID)
and not exists (select 1 from [dbo].[UserGroup] ug (readuncommitted) where ug.UserGroupGUID = il.MemberGUID)
GO
---------------------------------------------
-- dbo.viewS3PermissionSet
create view viewS3PermissionSet as
select
ps.PermissionSetID, ps.Name as PermissionSetName, ur.RoleID, ur.Name as RoleName, p.Weight, p.ReadValue, p.WriteValue, p.SecureValue, p.CreateValue, p.DeleteValue
from
S3PermissionSet ps
inner join S3Permission p on ps.PermissionSetID = p.PermissionSetID
inner join UserRole ur on p.RoleID = ur.RoleID
GO
---------------------------------------------
-- dbo.viewS3RoleAssignment
CREATE view [dbo].[viewS3RoleAssignment] as
select
lg.LootID as LootGroupID,
ra.RoleID,
il.memberguid as IdentityGUID,
case when min(il.Distance ) = 0 and max(case when lg.LootID = lg.LootGroupID then 1 else 0 end) = 1 then cast(1 as bit) else cast(0 as bit) end as IsDirectlyAssigned
from
S3LootGroup lg with (readuncommitted)
inner join S3RoleAssignment ra with (readuncommitted) on lg.LootGroupID = ra.LootGroupID
inner join S3identitylink il with (readuncommitted) on ra.IdentityGUID = il.GroupingGUID
group by
il.memberguid,
lg.LootID,
ra.RoleID
GO
---------------------------------------------
-- dbo.viewS3RoleAssignmentDetail
CREATE view [dbo].[viewS3RoleAssignmentDetail] as
select
RA.RowID,
UP.UserGUID,
UP.NameFirst + ' ' + UP.NameLast as UserName,
RA.IdentityGUID,
isnull(IUG.Name, IUP.NameFull) as IdentityName,
il.distance as UserGroupDistance,
case when LG.LootGroupID = LG.LootID then 0 else 1 end as LootDistance,
il.Distance + case when LG.LootGroupID = LG.LootID then 0 else 1 end as Distance,
RA.RoleID,
UR.Name as RoleName,
LG.LootID,
LG.LootGroupID,
isnull(case when LG.LootID = LG.LootGroupID then cast(1 as bit) else cast(0 as bit) end, cast(0 as bit)) as IsDirectAssignment
from
S3RoleAssignment RA (readuncommitted)
inner join S3LootGroup LG (readuncommitted) on LG.LootGroupID = RA.LootGroupID
inner join S3IdentityLink IL (readuncommitted) on IL.GroupingGUID = RA.IdentityGUID
inner join UserProfile UP (readuncommitted) on UP.UserGUID = IL.MemberGUID
inner join UserRole UR (readuncommitted) on UR.RoleID = RA.RoleID
left join UserProfile IUP (readuncommitted) on IUP.UserGUID = IL.GroupingGUID
left join UserGroup IUG (readuncommitted) on IUG.UserGroupGUID = IL.GroupingGUID
GO
---------------------------------------------
-- dbo.viewS3RoleAssignmentDirect
CREATE view [dbo].[viewS3RoleAssignmentDirect] as
select
ra.LootGroupID,
ra.RoleID,
ra.IdentityGUID as IdentityGUID,
isnull(cast(1 as bit),cast(1 as bit)) as IsDirectlyAssigned
from
--S3LootGroup lg with (readuncommitted)
--inner join
S3RoleAssignment ra with (readuncommitted) --on lg.LootGroupID = ra.LootGroupID
group by
ra.IdentityGUID,
ra.LootGroupID,
ra.RoleID
GO
---------------------------------------------
-- dbo.viewS3RoleAssignmentNoGroupBy
create view [dbo].[viewS3RoleAssignmentNoGroupBy] as
select
lg.LootID as LootGroupID,
ra.RoleID,
il.memberguid as IdentityGUID,
case when il.Distance = 0 and lg.LootID = lg.LootGroupID then cast(1 as bit) else cast(0 as bit) end as IsDirectlyAssigned
from
S3LootGroup lg with (readuncommitted)
inner join S3RoleAssignment ra with (readuncommitted) on lg.LootGroupID = ra.LootGroupID
inner join S3identitylink il with (readuncommitted) on ra.IdentityGUID = il.GroupingGUID
GO
---------------------------------------------
-- dbo.viewSR2CorrelationGroupMember
create view [dbo].[viewSR2CorrelationGroupMember]
as
select
cgm.*, cg.Name as GroupName
from
SR2CorrelationGroupMember cgm
inner join SR2CorrelationGroup cg on cgm.CorrelationGroupGUID = cg.CorrelationGroupGUID
GO
---------------------------------------------
-- dbo.viewSR2RiskResultDetail
CREATE view dbo.viewSR2RiskResultDetail as
select
rrdet.RowID
,rrdet.DetailGUID
,rrdet.RiskResultGUID
,rrdet.TrialNumber
,rrdet.OutputGUID
,rr.Bincount as BinNumber
,rrdet.Value
,rrdet.HistoryItemGUID
,rrdet.IsDeleted
,rr.RiskConfigGUID
,rr.Name as RiskResultName
,rr.DateCreated
,rrdet.CachedOutputName as [RiskConfigOutputName]
,rrdet.OutputUniqueID
,rrdet.CachedOutputDisplayFormat
,(select top 1 srdet.valuebaseline
from [dbo].[SR2SensitivityResultDetail] srdet (readuncommitted)
inner join [dbo].[SR2SensitivityResult] sr (readuncommitted) on sr.SensitivityResultGUID = srdet.SensitivityResultGUID
where rrdet.OutputGUID=srdet.OutputGUID
order by sr.DateCreated desc) as SensitivityBaseline
from [dbo].[SR2RiskResultDetail] rrdet (readuncommitted)
inner join [dbo].[SR2RiskResult] rr (readuncommitted) on rr.RiskResultGUID = rrdet.RiskResultGUID
GO
---------------------------------------------
-- dbo.viewSR2SensitivityResultDetail
CREATE view [dbo].[viewSR2SensitivityResultDetail] as
select
srdet.OutputGUID
,Max(srdet.ValueBaseline) as [ValueBaseline]
,srdet.IsDeleted
,sr.SensitivityResultGUID
,sr.Name as [SensitivityResultName]
,sr.DateCreated
,srdet.CachedOutputName as [SensitivityConfigOutputName]
,srdet.OutputUniqueID
,srdet.CachedGroupName as [GroupName]
,ABS(Sum(srdet.ValueHigh)-Sum(srdet.ValueLow)) as SensitivityCalculation
,Case When Sum(srdet.ValueHigh) > Sum(srdet.ValueBaseline) Then (Sum(srdet.ValueHigh) - Sum(srdet.ValueBaseline)) Else (Sum(srdet.ValueBaseline) - Sum(srdet.ValueHigh)) End as DeltaHigh
,Case When Sum(srdet.ValueLow) < Sum(srdet.ValueBaseline) Then (Sum(srdet.ValueLow) - Sum(srdet.ValueBaseline)) Else (Sum(srdet.ValueBaseline) - Sum(srdet.ValueLow)) End as DeltaLow
,srdet.CachedOutputDisplayFormat
from [dbo].[SR2SensitivityResultDetail] srdet (readuncommitted)
inner join [dbo].[SR2SensitivityResult] sr (readuncommitted) on sr.SensitivityResultGUID = srdet.SensitivityResultGUID where srdet.CachedGroupName<>''
Group By
srdet.OutputGUID
,srdet.IsDeleted
,sr.SensitivityResultGUID
,sr.Name
,sr.DateCreated
,srdet.CachedOutputName
,srdet.OutputUniqueID
,srdet.CachedGroupName
,srdet.CachedOutputDisplayFormat
Union All
select
srdet.OutputGUID
,srdet.ValueBaseline
,srdet.IsDeleted
,sr.SensitivityResultGUID
,sr.Name as [SensitivityResultName]
,sr.DateCreated
,srdet.CachedOutputName as [SensitivityConfigOutputName]
,srdet.OutputUniqueID
,srdet.CachedInputName as [GroupName]
,ABS(srdet.ValueHigh-srdet.ValueLow) as SensitivityCalculation
,Case When srdet.ValueHigh > srdet.ValueBaseline Then (srdet.ValueHigh - srdet.ValueBaseline) Else (srdet.ValueBaseline - srdet.ValueHigh) End as DeltaHigh
,Case When srdet.ValueLow < srdet.ValueBaseline Then (srdet.ValueLow - srdet.ValueBaseline) Else (srdet.ValueBaseline - srdet.ValueLow) End as DeltaLow
,srdet.CachedOutputDisplayFormat
from [dbo].[SR2SensitivityResultDetail] srdet (readuncommitted)
inner join [dbo].[SR2SensitivityResult] sr (readuncommitted) on sr.SensitivityResultGUID = srdet.SensitivityResultGUID where srdet.CachedGroupName=''
GO
---------------------------------------------
-- dbo.viewScoreAttribute
CREATE view [dbo].[viewScoreAttribute]
AS
select
*
from dbo.viewScoreAttributeCore30
GO
---------------------------------------------
-- dbo.viewScoreAttributeCore30
CREATE VIEW [dbo].[viewScoreAttributeCore30]
AS
select
A.AttributeGUID,
D.DimensionGUID,
A.DimensionGroupGUID,
A.FriendlyName,
A.IsWrittenToDB,
A.IsSecuredLootConfigID,
A.IsSecuredLootGroupID,
A.IsSecuredLootID,
A.SecuredLootGroupPrefix,
A.DefaultSortAttributeGUID,
A.ForeignKeyGUID,
A.IsRequired,
A.SpecialAttributeIndex,
A.IsCopiedWithPlan,
A.[CustomNumberFormat],
A.[IsCustomNumberFormat],
A.DisplayOrder,
A.IsHidden,
A.DSSIsUsed,
A.IsLocked,
A.IsKey,
A.JoinTypeVal,
A.DateModified,
A.SQLColumnName, -- need to use this, cause we have to update it , the join pulls in the rest of the data
A.AttributeType,
A.MetaXML,
A.InferredSourceGUID,
A.InferredAttributeGUID,
A.InferredColumnName,
A.HelpText,
dbo.GetSQLTableExpression(D.SQLSchemaName, D.SQLObjectName) as [DimensionSQLObjectExpression],
g.SchemaName as DimensionGroupSQLSchemaName,
g.ObjectName as DimensionGroupSQLObjectName,
g.Name as [CachedDimensionGroupName],
isnull(case when 1 = dbo.TableExists(g.SchemaName,g.ObjectName) then CAST(1 as bit) else cast(0 as bit) end, CAST(0 as bit)) as DimensionGroupIsTable,
D.SQLTableAlias as [DimensionSQLTableAlias],
D.sqltablealias + A.SQLColumnName as SQLColumnAlias,
D.IsSecured as [IsDimensionSecured],
D.IsSecuredSetupOnly as [IsDimensionSecuredSetupOnly],
D.FriendlyName as [DimensionName],
A.[ColumnType],
A.[ComputedValueDefinition],
A.[IsComputed],
A.[IsIdentity],
A.[IdentityIncrement],
A.[IdentitySeed],
A.[IsNullable],
A.[DefaultValueDefinition],
A.[Precision],
A.[Scale],
A.[MaxLength],
A.[IsColumnExist],
A.ForeignKeyHierarchyGUID,
ISNULL(FH.FriendlyName, '') as [CachedFKHierarchyName],
ISNULL(FK.FriendlyName,'') as [CachedFKMemberName],
ISNULL(FKD.FriendlyName,'') as [CachedFKDimensionName],
ISNULL(FKD.DimensionGUID,dbo.ZeroGUID()) as [CachedFKDimensionGUID],
ISNULL(FKD.DefaultLookupKeyGUID, dbo.ZeroGUID()) as [CachedFKDefaultLookupKeyGUID],
--ISNULL(FKG.Name,'') as [CachedDimensionGroupName],
A.IsForeignKeyed,
A.ForeignKeySchema,
A.ForeignKeyTable,
A.ForeignKeyColumn,
A.ForeignKeyOnDelete
,ISNULL(IA.SQLColumnName, '') as [CachedInferredSQLColumnName]
,ISNULL(IAG.SchemaName, '') as [CachedInferredSQLSchemaName]
,ISNULL(IAG.ObjectName, '') as [CachedInferredSQLObjectName]
,A.[CachedInferredSQLColumnType]
,A.IsFKAutoFilter
,D.DimensionVersion as [DimensionVersion]
,A.IsFormField
,A.FrameworkID
,A.IsModelDriver
from ScoreAttribute A (readuncommitted)
inner join ScoreAttributeType AT (readuncommitted) on AT.ScoreAttributeTypeID = A.AttributeType
inner join ScoreDimensionGroup G (readuncommitted) on A.DimensionGroupGUID = G.DimensionGroupGUID
inner join ScoreDimension D (readuncommitted) on G.DimensionGUID = D.DimensionGUID
--foreign key
left join ScoreAttribute FK (readuncommitted) on FK.AttributeGUID = A.ForeignKeyGUID
left join ScoreDimensionGroup FKG (readuncommitted) on FKG.DimensionGroupGUID = FK.DimensionGroupGUID
left join ScoreDimension FKD (readuncommitted) on FKD.DimensionGUID = FKG.DimensionGUID
--foreign hierarchy
left join ScoreHierarchy FH (readuncommitted) on FH.HierarchyGUID = A.ForeignKeyHierarchyGUID
--infer
left join ScoreAttribute IA (readuncommitted) on IA.AttributeGUID = A.InferredAttributeGUID
left join ScoreDimensionGroup IAG (readuncommitted) on IA.DimensionGroupGUID = IAG.DimensionGroupGUID
left join ScoreDimension IAD (readuncommitted) on IAD.DimensionGUID = IAG.DimensionGUID
GO
---------------------------------------------
-- dbo.viewScoreAttributeFramework
CREATE view dbo.viewScoreAttributeFramework
as
select distinct * from (
select
a.AttributeGUID,
a.FrameworkID
from
viewScoreAttribute a
where
a.FrameworkID != 0
union all
select
a.AttributeGUID,
df.FrameworkID
from
viewScoreAttribute a
inner join ScoreDimension d on d.DimensionGUID = a.DimensionGUID
inner join ScoreDimensionFramework df on df.DimensionGUID = d.DimensionGUID
where
a.FrameworkID = 0
union all
select
a.AttributeGUID,
fkdf.FrameworkID
from
viewScoreAttribute a
inner join ScoreDimension d on d.DimensionGUID = a.DimensionGUID
inner join ScoreDimension fkd on fkd.FriendlyName = a.CachedFKDimensionName
inner join ScoreDimensionFramework fkdf on fkdf.DimensionGUID = fkd.DImensionGUID
where
a.FrameworkID = 0
union all
select
a.AttributeGUID,
idf.FrameworkID
from
viewScoreAttribute a
inner join ScoreDimension d on d.DimensionGUID = a.DimensionGUID
inner join viewScoreAttribute ia on ia.AttributeGUID = a.InferredSourceGUID
inner join ScoreDimension id on id.FriendlyName = ia.CachedFKDimensionName
inner join ScoreDimensionFramework idf on idf.DimensionGUID = id.DImensionGUID
where
a.FrameworkID = 0
) a
GO
---------------------------------------------
-- dbo.viewScoreAttributeSchemaInfo
CREATE VIEW [viewScoreAttributeSchemaInfo]
AS
select
A.AttributeGUID,
isnull(case when 1 = dbo.TableExists(g.SchemaName,g.ObjectName) then CAST(1 as bit) else cast(0 as bit) end, CAST(0 as bit)) as DimensionGroupIsTable,
case when AT.ScoreAttributeTypeID = 3 then ISNULL(IAC.ColumnTypeValue,0) else ISNULL(COL.ColumnTypeValue,0) end as [ColumnType],
case when AT.ScoreAttributeTypeID = 3 then '' else ISNULL(COL.ComputedValueDefinition,'') end as [ComputedValueDefinition],
case when AT.ScoreAttributeTypeID = 3 then 0 else ISNULL(COL.IsComputed, 0) end as [IsComputed],
case when AT.ScoreAttributeTypeID = 3 then ISNULL(IAC.IsIdentity, 0) else ISNULL(COL.IsIdentity, 0) end as [IsIdentity],
case when AT.ScoreAttributeTypeID = 3 then -1 else ISNULL(COL.IdentityIncrement, 1) end as [IdentityIncrement],
case when AT.ScoreAttributeTypeID = 3 then -1 else ISNULL(COL.IdentitySeed, 1) end as [IdentitySeed],
case when AT.ScoreAttributeTypeID = 3 then ISNULL(IAC.IsNullable, 0) else ISNULL(COL.IsNullable, 0) end as [IsNullable],
case when AT.ScoreAttributeTypeID = 3 then ISNULL(IAC.DefaultValueDefinition, '') else ISNULL(COL.DefaultValueDefinition, '') end as [DefaultValueDefinition],
case when AT.ScoreAttributeTypeID = 3 then ISNULL(IAC.Precision, 0) else ISNULL(COL.Precision, 0) end as [Precision],
case when AT.ScoreAttributeTypeID = 3 then ISNULL(IAC.Scale,0) else ISNULL(COL.Scale,0) end as [Scale],
case when AT.ScoreAttributeTypeID = 3 then ISNULL(IAC.MaxLength,0) else ISNULL(COL.MaxLength,0) end as [MaxLength],
ISNULL(cast((case when COL.ColumnName is null then 0 else 1 end) as bit), 0) as [IsColumnExist],
isnull(COL.IsForeignKeyed,CAST(0 as bit)) as IsForeignKeyed,
isnull(COL.ForeignKeySchema,'') as ForeignKeySchema,
isnull(COL.ForeignKeyTable,'') as ForeignKeyTable,
isnull(COL.ForeignKeyColumn,'') as ForeignKeyColumn,
isnull(COL.ForeignKeyOnDelete,'') as ForeignKeyOnDelete
,isnull(IA.SQLColumnName, '') as [CachedInferredSQLColumnName]
,isnull(IAC.ColumnTypeValue,0) as [CachedInferredSQLColumnType]
from ScoreAttribute A
inner join ScoreAttributeType AT on AT.ScoreAttributeTypeID = A.AttributeType
inner join ScoreDimensionGroup G on A.DimensionGroupGUID = G.DimensionGroupGUID
inner join ScoreDimension D on G.DimensionGUID = D.DimensionGUID
left join viewSysColumns COL on COL.ColumnName = A.SQLColumnName
AND case when AT.ScoreAttributeTypeID = 1 then G.ObjectName ELSE D.SQLObjectName end = COL.ObjectName --CHANGED
and case when AT.ScoreAttributeTypeID = 1 then G.SchemaName ELSE D.SQLSchemaName end = COL.SchemaName --CHANGED group could have different schema
--foreign key
left join ScoreAttribute FK on FK.AttributeGUID = A.ForeignKeyGUID
left join ScoreDimensionGroup FKG on FKG.DimensionGroupGUID = FK.DimensionGroupGUID
left join ScoreDimension FKD on FKD.DimensionGUID = FKG.DimensionGUID
--infer
left join ScoreAttribute IA on IA.AttributeGUID = A.InferredAttributeGUID
left join ScoreAttributeType AIT on AIT.ScoreAttributeTypeID = IA.AttributeType --CHANGED Was looking at the base Attribute type not the type of the inferred
left join ScoreDimensionGroup IAG on IA.DimensionGroupGUID = IAG.DimensionGroupGUID
left join ScoreDimension IAD on IAD.DimensionGUID = IAG.DimensionGUID
left join viewSysColumns IAC on IAC.ColumnName = IA.SQLColumnName
AND case when AIT.ScoreAttributeTypeID = 1 then IAG.ObjectName ELSE IAD.SQLObjectName end = IAC.ObjectName --CHANGED Was a straight join on the inferred attribute info (could be calculated on the base)
and case when AIT.ScoreAttributeTypeID = 1 then IAG.SchemaName ELSE IAD.SQLSchemaName end = IAC.SchemaName --CHANGED schema same as above
GO
---------------------------------------------
-- dbo.viewScoreAttribute_StrataSchema
CREATE view [dbo].[viewScoreAttribute_StrataSchema]
AS
select
A.AttributeGUID
,A.DimensionGUID
,A.DimensionGroupGUID
,A.FriendlyName
,A.IsWrittenToDB
,A.IsSecuredLootConfigID
,A.IsSecuredLootGroupID
,A.IsSecuredLootID
,A.SecuredLootGroupPrefix
,A.DefaultSortAttributeGUID
,A.ForeignKeyGUID
,A.IsRequired
,A.SpecialAttributeIndex
,A.IsCopiedWithPlan
,A.CustomNumberFormat
,A.IsCustomNumberFormat
,A.DisplayOrder
,A.IsHidden
,A.DSSIsUsed
,A.IsLocked
,A.IsKey
,A.JoinTypeVal
,A.DateModified
,A.SQLColumnName
,A.AttributeType
,A.MetaXML
,A.InferredSourceGUID
,A.InferredAttributeGUID
,A.InferredColumnName
,A.HelpText
,A.DimensionSQLObjectExpression
,A.DimensionGroupSQLSchemaName
,A.DimensionGroupSQLObjectName
,A.CachedDimensionGroupName
,A.DimensionGroupIsTable
,A.DimensionSQLTableAlias
,A.SQLColumnAlias
,A.IsDimensionSecured
,A.IsDimensionSecuredSetupOnly
,A.DimensionName
,A.ColumnType
,A.ComputedValueDefinition
,A.IsComputed
,A.IsIdentity
,A.IdentityIncrement
,A.IdentitySeed
,A.IsNullable
,A.DefaultValueDefinition
,A.Precision
,A.Scale
,A.MaxLength
,A.IsColumnExist
,A.ForeignKeyHierarchyGUID
,A.CachedFKHierarchyName
,A.CachedFKMemberName
,A.CachedFKDimensionName
,A.CachedFKDimensionGUID
,A.CachedFKDefaultLookupKeyGUID
,A.IsForeignKeyed
,A.ForeignKeySchema
,A.ForeignKeyTable
,A.ForeignKeyColumn
,A.ForeignKeyOnDelete
,A.CachedInferredSQLColumnName
,A.CachedInferredSQLSchemaName
,A.CachedInferredSQLObjectName
,A.CachedInferredSQLColumnType
,A.IsFKAutoFilter
,A.DimensionVersion
,A.IsFormField
,A.FrameworkID
,A.IsModelDriver
,CAST(COALESCE(ATS.IsCustom, 0) AS BIT) AS IsCustom
,CAST(COALESCE(ATS.IsMarkedForDeletion, 0) AS BIT) AS IsMarkedForDeletion
,CAST(COALESCE(ATS.IsUsed, 1) AS BIT) AS IsUsed
,CAST(COALESCE(ATS.CAPIsUsed, 1) AS BIT) AS CAPIsUsed
,CAST(COALESCE(ATS.MRIsUsed, 1) AS BIT) AS MRIsUsed
,CAST(COALESCE(ATS.OBIsUsed, 1) AS BIT) AS OBIsUsed
,CAST(COALESCE(ATS.PRIsUsed, 1) AS BIT) AS PRIsUsed
,CAST(COALESCE(ATS.SPIsUsed, 1) AS BIT) AS SPIsUsed
from dbo.viewScoreAttributeCore30 A
LEFT JOIN [dbo].[ScoreAttributeSetting] ATS ON ATS.AttributeGUID = A.AttributeGUID
GO
---------------------------------------------
-- dbo.viewScoreCompositeLinkDetail
CREATE view [dbo].[viewScoreCompositeLinkDetail] as
select
scl.*,
sc.FriendlyName as CompositeName,
dt1.DataTableGUID as DataTable1GUID,
dt1.FriendlyName as DataTable1Name,
dt2.DataTableGUID as DataTable2GUID,
dt2.FriendlyName as DataTable2Name,
sk1.AttributeGUID as MappingKeyGUID,
sk1.FriendlyName as MappingKeyName,
isnull(msr.MeasureGUID, dbo.ZeroGUID()) as PlaceholderMeasureGUID,
isnull(msr.FriendlyName, '') as PlaceholderMeasureName,
sk2.AttributeGUID as DataKeyGUID,
sk2.FriendlyName as DataKeyName,
sdg1.DimensionGUID as MappingDimensionGUID,
sdg2.DimensionGUID as DataDimensionGUID,
sd2.FriendlyName as DataDimensionName
from
ScoreComposite sc
inner join scoredatatable dt1 on sc.DataTableGUID1 = dt1.DataTableGUID
inner join scoredatatable dt2 on sc.DataTableGUID2 = dt2.DataTableGUID
inner join ScoreCompositeLink scl on sc.CompositeGUID = scl.CompositeGUID
inner join ScoreAttribute sk1 on scl.Key1GUID = sk1.AttributeGUID
inner join ScoreDimensionGroup sdg1 on sk1.DimensionGroupGUID = sdg1.DimensionGroupGUID
inner join ScoreAttribute sk2 on scl.Key2GUID = sk2.AttributeGUID
inner join ScoreDimensionGroup sdg2 on sk2.DimensionGroupGUID = sdg2.DimensionGroupGUID
inner join ScoreDimension sd2 on sdg2.DimensionGUID = sd2.DimensionGUID
left join ScoreMeasure msr on scl.PlaceholderIndexMeasureGUID = msr.MeasureGUID
GO
---------------------------------------------
-- dbo.viewScoreDataSource
CREATE View [dbo].[viewScoreDataSource]
AS
select * from
(
select
DatatableGUID as DataSourceGUID,
FriendlyName as FriendlyName,
0 as DataSourceType
from
ScoreDataTable
UNION
select
CompositeGUID as DataSourceGUID,
FriendlyName as FriendlyName,
1 as DataSourceType
from
ScoreComposite
) AS Test
GO
---------------------------------------------
-- dbo.viewScoreDataTable
CREATE VIEW [dbo].[viewScoreDataTable]
AS
select
DataTableGUID,
FriendlyName,
Description,
SQLTableAlias,
IsWrittenToDB,
DisplayFormatAttributeGUID,
DisplayFormatAttributeDimensionGUID,
IsCompositeMappingTable,
IsCompositeBoundsTable,
FrameworkID,
SQLSchemaName,
SQLObjectName,
IsWrittenIfZero,
GlobalID,
ModifiedAt,
IsClientFriendly,
OverrideLoadBySQLSchemaName,
OverrideLoadBySQLObjectName,
IsGeneratingSelectIntoTempTable,
ModelQueryHint,
DIDeleteQueryHint,
ISNULL(cast(case when object_ID(dbo.GetSQLTableExpression(SQLSchemaName, SQLObjectName)) is not null then 1 else 0 end as bit), cast(0 as bit)) as [IsBackingObjectExist],
ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(SQLSchemaName, SQLObjectName)), 'IsView') as bit), cast(0 as bit)) as [IsView]
from
ScoreDataTable
GO
---------------------------------------------
-- dbo.viewScoreDataTableBadColumns
create view viewScoreDatatableBadColumns as
select sd.datatableguid, sd.friendlyname, sa.attributeguid, sa.sqlcolumnname, sm.measureguid
from
scoredatatable sd
inner join scoredatatablekeylink kl on sd.datatableguid = kl.datatableguid
inner join scoreattribute sa on kl.keyguid = sa.attributeguid
left join scoremeasure sm on sm.datatableguid = kl.datatableguid and sm.sqlcolumnname = sa.sqlcolumnname
where
sm.measureguid is not null
GO
---------------------------------------------
-- dbo.viewScoreDataTableKeyLink
CREATE view [dbo].[viewScoreDataTableKeyLink] as
select
dt.SQLTableAlias,
sd.FriendlyName as DimensionName,
sd.GlobalID as DimensionGlobalID,
sa.FriendlyName,
--dt.SQLSchemaName,
--dt.SQLObjectName,
--sa.SQLColumnName,
sdg.DimensionGUID,
--careful if you edit this view as these col columns need to be last!
--and if you add/remove columns before them you need to update the codegen
dtkl.IsRequired,
dtkl.DataTableKeyLinkGUID,
dtkl.DataTableGUID,
dtkl.KeyGUID,
dtkl.ObjectID,
dtkl.ColumnID,
dtkl.SchemaName,
dtkl.ObjectName,
dtkl.ColumnName,
dtkl.ObjectType,
dtkl.MaxLength,
dtkl.IsComputed,
dtkl.IsNullable,
dtkl.Scale,
dtkl.Precision,
dtkl.IsIdentity,
dtkl.ColumnTypeValue,
dtkl.IdentityIncrement,
dtkl.IdentitySeed,
dtkl.DefaultValueDefinition,
dtkl.IsPartOfUniqueIndex,
dtkl.IsUniqueIndex,
dtkl.IsPartOfPrimaryKey,
dtkl.IsPrimaryKey,
dtkl.ComputedValueDefinition,
dtkl.IsForeignKeyed,
dtkl.ForeignKeySchema,
dtkl.ForeignKeyTable,
dtkl.ForeignKeyColumn,
dtkl.ForeignKeyOnDelete,
dtkl.ModifiedAt
from
ScoreDataTableKeyLink dtkl
inner join ScoreDataTable dt on dt.DataTableGUID = dtkl.DataTableGUID
inner join ScoreAttribute sa on dtkl.KeyGUID = sa.AttributeGUID
inner join ScoreDimensionGroup sdg on sa.DimensionGroupGUID = sdg.DimensionGroupGUID
inner join ScoreDimension sd on sdg.DimensionGUID = sd.DimensionGUID
GO
---------------------------------------------
-- dbo.viewScoreDataTableKeyLinkSchemaInfo
create view viewScoreDataTableKeyLinkSchemaInfo as
select
m.DataTableKeyLinkGUID,
col.*
from
ScoreDataTableKeyLink m
INNER JOIN dbo.ScoreDataTable dt ON m.DataTableGUID = dt.DataTableGUID
INNER JOIN dbo.ScoreAttribute SA on m.keyguid = sa.attributeguid
--should be inner? should it use something more specialized?
INNER JOIN viewSysColumns col on
col.SchemaName = dt.SQLSchemaName
and col.ObjectName = dt.SQLObjectName
and col.ColumnName = sa.SQLColumnName
GO
---------------------------------------------
-- dbo.viewScoreDataTableKeyLink_StrataSchema
CREATE VIEW dbo.viewScoreDataTableKeyLink_StrataSchema AS
SELECT
DTKL.DataTableKeyLinkGUID
,DTKL.DataTableGUID
,DTKL.KeyGUID
,DTKL.ObjectID
,DTKL.ColumnID
,DTKL.SchemaName
,DTKL.ObjectName
,DTKL.ColumnName
,DTKL.ObjectType
,DTKL.MaxLength
,DTKL.IsComputed
,DTKL.IsNullable
,DTKL.Scale
,DTKL.Precision
,DTKL.IsIdentity
,DTKL.ColumnTypeValue
,DTKL.IdentityIncrement
,DTKL.IdentitySeed
,DTKL.DefaultValueDefinition
,DTKL.IsPartOfUniqueIndex
,DTKL.IsUniqueIndex
,DTKL.IsPartOfPrimaryKey
,DTKL.IsPrimaryKey
,DTKL.ComputedValueDefinition
,DTKL.IsForeignKeyed
,DTKL.ForeignKeySchema
,DTKL.ForeignKeyTable
,DTKL.ForeignKeyColumn
,DTKL.ForeignKeyOnDelete
,DTKL.ModifiedAt
,DTKL.IsRequired
,DTKL.Description
,D.DimensionGuid
,CAST(COALESCE(KLS.IsCustom, 0) AS BIT) AS IsCustom
,CAST(COALESCE(KLS.IsUsed, 1) AS BIT) AS IsUsed
,CAST(COALESCE(KLS.IsMarkedForDeletion, 0) AS BIT) AS IsMarkedForDeletion
FROM [dbo].[ScoreDataTableKeyLink] DTKL
INNER JOIN [dbo].[ScoreDimension] D ON D.DefaultKeyGUID = DTKL.KeyGUID
LEFT JOIN [dbo].[ScoreKeyLinkSetting] KLS ON DTKL.DataTableGUID = KLS.DataTableGUID AND DTKL.KeyGUID = KLS.KeyGUID
GO
---------------------------------------------
-- dbo.viewScoreDataTable_StrataSchema
CREATE VIEW viewScoreDataTable_StrataSchema
AS
SELECT
DT.DataTableGUID
,DT.FriendlyName
,DT.Description
,DT.SQLSchemaName
,DT.SQLObjectName
,DT.SQLTableAlias
,DT.IsWrittenToDB
,DT.DisplayFormatAttributeGUID
,DT.DataTableID
,DT.SQLTableAliasUnique
,DT.IsCompositeMappingTable
,DT.FrameworkID
,DT.ModifiedAt
,DT.IsWrittenIfZero
,DT.GlobalID
,DT.IsCompositeBoundsTable
,DT.DisplayFormatAttributeDimensionGUID
,DT.IsClientFriendly
,DT.OverrideLoadBySQLSchemaName
,DT.OverrideLoadBySQLObjectName
,CAST(COALESCE(dts.IsRequired, 1) AS BIT) IsRequired
,CAST(COALESCE(dts.IsUsed, 1) AS BIT) IsUsed
FROM
[dbo].[ScoreDataTable] dt
LEFT JOIN [dbo].[ScoreDatatableSetting] dts ON dts.DataTableGUID = dt.DataTableGUID
GO
---------------------------------------------
-- dbo.viewScoreDimension
CREATE view [dbo].[viewScoreDimension]
as
select
sd.DefaultHierarchyGUID,
sd.DefaultKeyGUID,
sd.DefaultLookupKeyGUID,
sd.HelpTextAttributeGUID,
sd.PrimaryGroupGUID,
sd.DimensionGUID,
sd.FriendlyName,
sd.IsSecured,
sd.PermissionSetID,
sd.SQLObjectName,
sd.SQLSchemaName,
sd.SQLTableAlias,
sd.DefaultMemberGUID,
sd.IsSysAdminOnly,
sd.IsAllowMemberDelete,
sd.IsAllowMemberAdd,
sd.IsSharingSecurity,
sd.IsStock,
sd.IsSensitivityRiskHidden,
sd.Description,
sd.PHIDisclaimer,
sd.CopyrightDisclaimer,
sd.DateModified,
sd.PickerType,
sd.DimensionVersion,
sd.IsGeneratingWrapperView,
sd.GlobalID,
sd.DimensionEditorMode,
sd.IsSecuredSetupOnly,
sd.IsClientFriendly,
sd.IsEditable,
sd.IsCustomAttributeAllowed,
sd.IsCustom,
sd.ParentDimensionGUID,
sd.IsStandard,
sd.StandardCodesLastUpdated,
sd.StandardCodesVersion,
sd.IsDisablingHistoryTriggers,
ISNULL(cast(case when object_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)) is not null then 1 else 0 end as bit), cast(0 as bit)) as [IsBackingObjectExist] ,
ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'IsTable') as bit), cast(0 as bit)) as [IsTable] ,
ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'IsView') as bit), cast(0 as bit)) as [IsView] ,
ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'HasUpdateTrigger') as bit), cast(0 as bit)) as [HasUpdateTrigger] ,
ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'HasInsertTrigger') as bit), CAST(0 as bit)) as [HasInsertTrigger] ,
ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'HasDeleteTrigger') as bit), CAST(0 as bit)) as [HasDeleteTrigger] ,
ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'HasInsteadOfTrigger') as bit), CAST(0 as bit)) as HasInsteadOfTrigger ,
coalesce(OBJECT_DEFINITION(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName))), '') as [ObjectDefinition] ,
case when exists (SELECT 1 FROM ScoreCompositeLink l WHERE sd.DefaultKeyGUID = l.Key1GUID and l.IsPlaceholder = 1) then CAST(1 as bit) else CAST(0 as bit) end as IsUsedAsPlaceholder ,
(select max(datemodified) from (select datemodified from ScoreDimension where DimensionGUID = sd.dimensionguid union all select datemodified from ScoreAttribute where DimensionGUID = sd.dimensionguid union all select datemodified from ScoreDimensionGroup where DimensionGUID = sd.dimensionguid union all select datemodified from ScoreHierarchy where DimensionGUID = sd.dimensionguid union all select datemodified from ScoreHierarchyAttributeLink shal where shal.HierarchyGUID in (select HierarchyGUID from ScoreHierarchy where DimensionGUID = sd.dimensionguid)) x) as LastModifiedIncludingChildren
,ISNULL(case when EXISTS (select 1 from PlanType PT (readuncommitted) where PT.DimensionGUID = sd.DimensionGUID) then cast(1 as bit) else cast(0 as bit) end, CAST(0 as bit)) as [IsPlanDimension]
,case when exists (SELECT 1 FROM SecureList emf (readuncommitted) where emf.SyncedScoreDimensionGUID = sd.DimensionGUID) then CAST(1 as bit) else CAST(0 as bit) end as IsEMFSyncEnabled
from
ScoreDimension sd
GO
---------------------------------------------
-- dbo.viewScoreDimensionDependency
CREATE view dbo.viewScoreDimensionDependency
as
select distinct
A.DimensionGUID as ParentDimensionGUID,
D.FriendlyName as ParentDimensionName,
FK.DimensionGUID as ChildDimensionGUID,
FKD.FriendlyName as ChildDimensionName
from
viewScoreAttribute A
inner join ScoreDimension D on D.DimensionGUID = A.DimensionGUID
inner join viewScoreAttribute FK on FK.ForeignKeyGUID = A.AttributeGUID
inner join ScoreDimension FKD with (readuncommitted) on FKD.DimensionGUID = FK.DimensionGUID
where
A.DimensionGUID != FK.DimensionGUID
and FKD.DimensionVersion = 3
GO
---------------------------------------------
-- dbo.viewScoreDimensionDisclaimer
create view [dbo].[viewScoreDimensionDisclaimer]
as
select
DimensionGUID,
GlobalID as DimensionName,
PHIDisclaimer,
CopyrightDisclaimer
from
ScoreDimension
where
PHIDisclaimer != '' or CopyrightDisclaimer != ''
GO
---------------------------------------------
-- dbo.viewScoreDimensionGroups
CREATE view [dbo].[viewScoreDimensionGroups]
AS
select
G.*
,ISNULL(cast(case when object_ID(dbo.GetSQLTableExpression(G.SchemaName, G.ObjectName)) is not null then 1 else 0 end as bit), cast(0 as bit)) as [IsBackingObjectExist]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(G.SchemaName, G.ObjectName)), 'IsTable') as bit), cast(0 as bit)) as [IsTable]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(G.SchemaName, G.ObjectName)), 'IsView') as bit), cast(0 as bit)) as [IsView]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(G.SchemaName, G.ObjectName)), 'HasUpdateTrigger') as bit), cast(0 as bit)) as [HasUpdateTrigger]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(G.SchemaName, G.ObjectName)), 'HasInsertTrigger') as bit), CAST(0 as bit)) as [HasInsertTrigger]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(G.SchemaName, G.ObjectName)), 'HaGeleteTrigger') as bit), CAST(0 as bit)) as [HaGeleteTrigger]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(G.SchemaName, G.ObjectName)), 'HasInsteadOfTrigger') as bit), CAST(0 as bit)) as HasInsteadOfTrigger
,coalesce(OBJECT_DEFINITION(OBJECT_ID(dbo.GetSQLTableExpression(G.SchemaName, G.ObjectName))), '') as [ObjectDefinition]
from ScoreDimensionGroup G
inner join ScoreDimension D on D.DimensionGUID = G.DimensionGUID
GO
---------------------------------------------
-- dbo.viewScoreDimensionHistory
CREATE view dbo.viewScoreDimensionHistory
AS
select
HL.DimensionHistoryLineID
,ISNULL(UP.UserName, case when HI.MODIFIERUSERGUID = dbo.GetSuperUserGUID() then 'Strata' else '' end) as [UserName]
,ISNULL(UP.NameLast + ', ' + UP.NameFirst, case when HI.MODIFIERUSERGUID = dbo.GetSuperUserGUID() then 'Strata' else '' end) as [User]
,HI.DateTimeStamp
,HL.TableName
,HL.MemberGUID
,HL.BeforeValues
,HL.AfterValues
from ScoreDimensionHistoryLine HL
inner join HistoryItem HI on HI.HISTORYITEMGUID = HL.HistoryItemGUID
left join UserProfile UP on UP.UserGUID = HI.MODIFIERUSERGUID
GO
---------------------------------------------
-- dbo.viewScoreDimension_StrataSchema
CREATE VIEW dbo.viewScoreDimension_StrataSchema AS
SELECT
D.*
,G.SchemaName AS GroupSchemaName
,G.ObjectName as GroupObjectName
,COALESCE(GPARENT.SchemaName, G.SchemaName) SourceTableSchema
,COALESCE(GPARENT.ObjectName, G.ObjectName) SourceTableName
FROM [dbo].[ScoreDimension] D
INNER JOIN [dbo].[ScoreDimensionGroup] G ON G.DimensionGroupGUID = D.PrimaryGroupGUID
LEFT JOIN [dbo].[ScoreDimension] DPARENT ON DPARENT.DimensionGUID = D.ParentDimensionGUID
LEFT JOIN [dbo].[ScoreDimensionGroup] GPARENT ON GPARENT.DimensionGroupGUID = DPARENT.PrimaryGroupGUID
GO
---------------------------------------------
-- dbo.viewScoreDimensions
CREATE view [dbo].[viewScoreDimensions]
as
select
sd.DefaultHierarchyGUID,
sd.DefaultKeyGUID,
sd.DefaultLookupKeyGUID,
sd.PrimaryGroupGUID,
sd.DimensionGUID,
sd.FriendlyName,
sd.IsSecured,
sd.PermissionSetID,
sd.SQLObjectName,
sd.SQLSchemaName,
sd.SQLTableAlias,
sd.DefaultMemberGUID,
sd.IsSysAdminOnly,
sd.IsAllowMemberDelete,
sd.IsAllowMemberAdd,
sd.IsStock,
sd.Description,
sd.DateModified,
ISNULL(cast(case when object_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)) is not null then 1 else 0 end as bit), cast(0 as bit)) as [IsBackingObjectExist]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'IsTable') as bit), cast(0 as bit)) as [IsTable]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'IsView') as bit), cast(0 as bit)) as [IsView]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'HasUpdateTrigger') as bit), cast(0 as bit)) as [HasUpdateTrigger]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'HasInsertTrigger') as bit), CAST(0 as bit)) as [HasInsertTrigger]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'HasDeleteTrigger') as bit), CAST(0 as bit)) as [HasDeleteTrigger]
,ISNULL(cast(OBJECTPROPERTY(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName)), 'HasInsteadOfTrigger') as bit), CAST(0 as bit)) as HasInsteadOfTrigger
,coalesce(OBJECT_DEFINITION(OBJECT_ID(dbo.GetSQLTableExpression(sd.SQLSchemaName, sd.SQLObjectName))), '') as [ObjectDefinition]
from
ScoreDimension sd
GO
---------------------------------------------
-- dbo.viewScoreHierarchy
CREATE view [dbo].[viewScoreHierarchy] as
select top 100 percent
sh.HierarchyGUID,
sh.FriendlyName as HierarchyName,
sh.PathAlias,
sh.DateModified,
shal.SortOrder,
sa.AttributeGUID,
sa.FriendlyName,
sh.DimensionGUID,
sd.FriendlyName as DimensionName
from
ScoreHierarchy sh
inner join ScoreDImension sd on sd.DimensionGUID = sh.DimensionGUID
inner join ScoreHierarchyAttributeLink shal on sh.HierarchyGUID = shal.HierarchyGUID
inner join ScoreAttribute sa on shal.AttributeGUID = sa.AttributeGUID
order by sd.FriendlyName, sh.FriendlyName, shal.SortOrder
GO
---------------------------------------------
-- dbo.viewScoreHierarchyAttributeLink
CREATE view [dbo].[viewScoreHierarchyAttributeLink]
AS
select
L.HierarchyAttributeLinkGUID,
L.HierarchyGUID,
L.DisplayAttributeGUID,
L.SortOrder,
L.IsDependentOnChild,
L.AttributeGUID,
D.FriendlyName as [DisplayAttributeName],
D.SQLColumnName as [DisplayAttributeColumnName],
A.SQLColumnName,
A.ColumnType,
A.IsNullable,
A.IsRequired,
A.IsComputed,
A.IsCopiedWithPlan,
A.IsIdentity,
A.IdentityIncrement,
A.IdentitySeed,
A.Scale,
A.Precision,
A.DefaultValueDefinition,
A.MaxLength
from ScoreHierarchyAttributeLink L
inner join viewScoreAttributeCore30 A on L.AttributeGUID = A.AttributeGUID
inner join ScoreAttribute D on D.AttributeGUID = L.DisplayAttributeGUID
GO
---------------------------------------------
-- dbo.viewScoreHierarchyAttributeLinkCore30
CREATE view [dbo].[viewScoreHierarchyAttributeLinkCore30]
AS
select
L.HierarchyAttributeLinkGUID,
L.HierarchyGUID,
L.DisplayAttributeGUID,
L.SortOrder,
L.IsDependentOnChild,
L.AttributeGUID,
L.DateModified,
L.IsAttributeFiltered,
L.FilterAttributeGUID,
L.FilterString,
D.FriendlyName as [DisplayAttributeName],
D.SQLColumnName as [DisplayAttributeColumnName],
A.SQLColumnName as [ColumnName],
A.FriendlyName,
A.DimensionGUID,
A.DimensionGroupGUID,
A.ColumnType,
A.SecuredLootGroupPrefix,
A.IsSecuredLootGroupID,
A.IsSecuredLootID,
A.ForeignKeyGUID,
A.DefaultSortAttributeGUID,
A.IsRequired,
A.IsHidden,
A.IsKey,
A.IsWrittenToDB,
A.IsCustomNumberFormat,
A.CustomNumberFormat,
A.IsComputed,
A.IsCopiedWithPlan,
A.IsNullable,
A.IsIdentity,
A.IdentityIncrement,
A.IdentitySeed,
A.Scale,
A.Precision,
A.DefaultValueDefinition,
A.ComputedValueDefinition,
A.MaxLength,
A.DimensionSQLObjectExpression,
A.DimensionSQLTableAlias,
A.IsDimensionSecured,
A.IsDimensionSecuredSetupOnly,
A.DimensionName,
A.IsForeignKeyed,
A.ForeignKeySchema,
A.ForeignKeyTable,
A.ForeignKeyColumn,
A.ForeignKeyOnDelete,
A.AttributeType,
A.MetaXML,
A.IsFKAutoFilter
from ScoreHierarchyAttributeLink L
inner join viewScoreAttributeCore30 A on L.AttributeGUID = A.AttributeGUID
inner join ScoreAttribute D on D.AttributeGUID = L.DisplayAttributeGUID
GO
---------------------------------------------
-- dbo.viewScoreHierarchyCore30
CREATE view [dbo].[viewScoreHierarchyCore30] as
select
sh.HierarchyGUID,
sh.FriendlyName,
sh.HierarchyID,
sh.DateModified,
sh.DimensionGUID,
sh.PathAlias,
sd.FriendlyName as DimensionName,
Replace(sh.PathAlias + cast(sh.HierarchyID as nvarchar(11)), ' ','') as [UniquePathAlias],
sh.GlobalID,
sh.IsMR
from
ScoreHierarchy sh
inner join ScoreDImension sd on sd.DimensionGUID = sh.DimensionGUID
GO
---------------------------------------------
-- dbo.viewScoreHierarchyRoleLink
create view dbo.viewScoreHierarchyRoleLink
as
select
d.DimensionGUID,
d.FriendlyName as DimensionName,
d.GlobalID as DimensionGlobalID,
h.HierarchyGUID,
h.FriendlyName as HierarchyName,
r.RoleID,
r.Name as RoleName,
al.SortOrder
from
[dbo].[ScoreHierarchy] h with (readuncommitted)
inner join [dbo].[ScoreHierarchyAttributeLink] al with (readuncommitted) on al.HierarchyGUID = h.HierarchyGUID
inner join [dbo].[viewScoreAttribute] a on a.AttributeGUID = al.AttributeGUID
inner join [dbo].[viewFE2FormField] ff on ff.AttributeGUID = a.AttributeGUID
inner join [dbo].[UserRole] r with (readuncommitted) on ff.ComputedFieldConfig like '%' + cast(r.UserRoleGUID as nvarchar(36)) + '%'
inner join [dbo].[ScoreDimension] d with (readuncommitted) on d.DimensionGUID = h.DimensionGUID
where
ff.ComputedFieldClassName = 'RoleAssignment'
GO
---------------------------------------------
-- dbo.viewScoreInvalidAttributes
CREATE view [dbo].[viewScoreInvalidAttributes]
AS
select
D.FriendlyName as [Dimension]
,G.SchemaName as [Schema]
,G.ObjectName as [Table]
,A.FriendlyName as [Attribute]
,A.SQLColumnName as [ColumnName]
,'Column not found.' as [Description]
from ScoreDimension D
inner join ScoreDimensionGroup G on G.DimensionGUID = D.DimensionGUID
inner join ScoreAttribute A on A.DimensionGroupGUID = G.DimensionGroupGUID
left join viewSysColumns C
on C.ColumnName = A.SQLColumnName
and C.ObjectID = OBJECT_ID(dbo.GetSQLTableExpression(D.SQLSchemaName, D.SQLObjectName))
where
C.ColumnID is null
GO
---------------------------------------------
-- dbo.viewScoreMeasure
CREATE VIEW [dbo].[viewScoreMeasure]
AS
SELECT
dt.SQLTableAlias,
dt.IsWrittenIfZero,
m.*
FROM
dbo.ScoreMeasure AS m
INNER JOIN dbo.ScoreDataTable AS dt ON m.DataTableGUID = dt.DataTableGUID
GO
---------------------------------------------
-- dbo.viewScoreMeasureSchemaInfo
create view viewScoreMeasureSchemaInfo as
select
m.MeasureGUID,
col.*
from
ScoreMeasure m
INNER JOIN dbo.ScoreDataTable AS dt ON m.DataTableGUID = dt.DataTableGUID
--should be inner? should it use something more specialized?
INNER JOIN viewSysColumns col on
col.SchemaName = dt.SQLSchemaName
and col.ObjectName = dt.SQLObjectName
and col.ColumnName = m.SQLColumnName
GO
---------------------------------------------
-- dbo.viewScoreMeasure_StrataSchema
CREATE VIEW dbo.viewScoreMeasure_StrataSchema
AS
SELECT
M.MeasureGUID
,M.FriendlyName
,M.DataTableGUID
,M.IsReadFromDB
,M.IsWrittenToDB
,M.SQLColumnName
,M.DisplayFormat
,M.HasMin
,M.Min
,M.HasMax
,M.Max
,M.HasMinLength
,M.MinLength
,M.DefaultValue
,M.AggType
,M.SpecialMeasureIndex
,M.SpecialFormulaSQLColumnName
,M.SpecialCommentSQLColumnName
,M.HasRestrictedValues
,M.RestrictedValues
,M.ObjectID
,M.ColumnID
,M.SchemaName
,M.ObjectName
,M.ColumnName
,M.ObjectType
,M.MaxLength
,M.IsComputed
,M.IsNullable
,M.Scale
,M.Precision
,M.IsIdentity
,M.ColumnTypeValue
,M.IdentityIncrement
,M.IdentitySeed
,M.DefaultValueDefinition
,M.IsPartOfUniqueIndex
,M.IsUniqueIndex
,M.IsPartOfPrimaryKey
,M.IsPrimaryKey
,M.ComputedValueDefinition
,M.IsForeignKeyed
,M.ForeignKeySchema
,M.ForeignKeyTable
,M.ForeignKeyColumn
,M.ForeignKeyOnDelete
,M.ModifiedAt
,M.IsHidden
,M.GlobalID
,M.IsRequired
,M.Description
,M.DisplayFolder
,CAST(COALESCE(MS.IsCustom, 0) AS BIT) AS IsCustom
,CAST(COALESCE(MS.IsUsed, 1) AS BIT) AS IsUsed
,CAST(COALESCE(MS.IsMarkedForDeletion, 0) AS BIT) AS IsMarkedForDeletion
FROM [dbo].[ScoreMeasure] M
LEFT JOIN [dbo].[ScoreMeasureSetting] MS ON MS.MeasureGUID = M.MeasureGUID
GO
---------------------------------------------
-- dbo.viewScoreOrphanedLootTriggers
CREATE VIEW [dbo].[viewScoreOrphanedLootTriggers]
AS
select S.Name as [Schema], O.[Name] as [Object], TRG.Name as [Trigger] from sys.triggers TRG
inner join sys.objects O on O.object_id = TRG.parent_id
inner join sys.schemas S on S.schema_id = O.schema_id
where TRG.name like 'trg_ScoreDimension_%_LootRefresh_%'
and SUBSTRING(TRG.Name, 20, 32) not in (select Replace(cast(DimensionGUID as nvarchar(36)),'-','') from ScoreDimension)
GO
---------------------------------------------
-- dbo.viewScorePlaceholderSection
CREATE view [dbo].[viewScorePlaceholderSection]
AS
select distinct
SC.CompositeGUID as CompositeGUID,
SG1.DimensionGUID as DIMENSIONGUID,
SD1.FriendlyName as DIMENSIONNAME,
SD1.SQLSchemaName as DIMENSIONSCHEMANAME,
SD1.SQLObjectName as DIMENSIONOBJECTNAME,
SG2.DimensionGUID as FILLINDIMGUID,
SD2.FriendlyName as FILLINDIMNAME,
SD2.SQLObjectName as FILLINOBJECTNAME,
SD2.SQLSchemaName as FILLINSCHEMANAME,
SCL.IsFixedIndex As IsFixedIndex
from dbo.ScoreComposite SC
inner join dbo.ScoreDataTable DT1 on DT1.DataTableGUID = SC.DataTableGUID1
inner join dbo.ScoreDataTable DT2 on DT2.DataTableGUID = SC.DataTableGUID2
inner join dbo.ScoreCompositeLink SCL on SCL.CompositeGUID = SC.CompositeGUID
inner join dbo.ScoreAttribute SA1 on SA1.AttributeGUID = SCL.Key1GUID
inner join dbo.ScoreAttribute SA2 on SA2.AttributeGUID = SCL.Key2GUID
inner join dbo.ScoreDimensionGroup SG1 on SG1.DimensionGroupGUID = SA1.DimensionGroupGUID
inner join dbo.ScoreDimensionGroup SG2 on SG2.DimensionGroupGUID = SA2.DimensionGroupGUID
inner join dbo.ScoreDimension SD1 on SD1.DimensionGUID = SG1.DimensionGUID
inner join dbo.ScoreDimension SD2 on SD2.DimensionGUID = SG2.DimensionGUID
where SCL.IsPlaceholder = 1
GO
---------------------------------------------
-- dbo.viewScoreSecurityTriggers
CREATE view [dbo].[viewScoreSecurityTriggers]
AS
select
T.Name,
SUBSTRING(T.definition, CHARINDEX('EXEC procScoreSetDimensionSecurity30 ''', T.definition) - 1, 80) as Definition,
Substring(SUBSTRING(T.definition, CHARINDEX('EXEC procScoreSetDimensionSecurity30 ''', T.definition) - 1, 80), 78,1) as [IsDebugOnly],
Substring(SUBSTRING(T.definition, CHARINDEX('EXEC procScoreSetDimensionSecurity30 ''', T.definition) - 1, 80), 80,1) as [IsUsingVersionColumn],
D.FriendlyName as [SourceDimension],
D.DimensionGUID as [SourceDimensionGUID],
dbo.GetSQLTableExpression(D.SQLSchemaName, D.sqlobjectname) as [SourceExpression],
DT.FriendlyName as [TargetDimension],
DT.DimensionGUID as [TargetDimensionGUID],
dbo.GetSQLTableExpression(DT.SQLSchemaName, DT.SQLObjectName) as [TargetExpression],
case when
SUM( case when(C.ColumnName = 'Version' and C.ColumnTypeValue = 189) then 1 else 0 end) = 1 then 1
else 0
end as [TargetHasVersionColumn]
from ScoreDimension D
inner join ViewSysTriggers T on T.SchemaName = D.SQLSchemaName and T.ObjectName = D.SQLObjectName
inner join ScoreDimension DT on REPLACE(DT.DimensionGUID,'-','') = SUBSTRING(T.Name, 20, 32)
inner join viewSysObjects O on O.SchemaName = DT.SQLSchemaName and O.Objectname = DT.SQLObjectName
inner join viewSysColumns C on C.SchemaName = O.SchemaName and C.ObjectName = O.Objectname
GROUP BY
T.Name,
SUBSTRING(T.definition, CHARINDEX('EXEC procScoreSetDimensionSecurity30 ''', T.definition) - 1, 80),
Substring(SUBSTRING(T.definition, CHARINDEX('EXEC procScoreSetDimensionSecurity30 ''', T.definition) - 1, 80), 78,1),
Substring(SUBSTRING(T.definition, CHARINDEX('EXEC procScoreSetDimensionSecurity30 ''', T.definition) - 1, 80), 80,1),
D.FriendlyName,
D.DimensionGUID,
dbo.GetSQLTableExpression(D.SQLSchemaName, D.sqlobjectname),
DT.FriendlyName,
DT.DimensionGUID,
dbo.GetSQLTableExpression(DT.SQLSchemaName, DT.SQLObjectName)
GO
---------------------------------------------
-- dbo.viewScoreTableEditorColumn
CREATE view viewScoreTableEditorColumn
as
SELECT
[TableEditorColumnGUID]
,[TableEditorConfigGUID]
,[KeyGUID]
,[Type]
,[PixelWidth]
,[DisplayOrder]
,cast([MetaData] as nvarchar(max)) as MetaData
,[DisplayName]
,[DefaultMemberType]
,[IsTextWrap]
,[IsSortedByDefault]
,[DefaultSortDirectionValue]
,[DefaultSortIndex]
,[TableEditorColumnGroupGUID]
,[IsRequired]
,[IsLocked]
,[IsNonFilterable]
FROM
[ScoreTableEditorColumn]
GO
---------------------------------------------
-- dbo.viewSecurableEntities
CREATE VIEW [dbo].[viewSecurableEntities]
AS
SELECT PlanGUID AS ENTITYGUID, dbo.ZeroGUID() as ParentEntityGUID, dbo.GetPlanName(PlanGUID) AS NAME, 0 AS ENTITYTYPE, DateCreated
FROM dbo.XPlan
UNION ALL
SELECT F.FolderGuid AS ENTITYGUID, (CASE WHEN (ISDELETEDFOLDER = 1 AND BASEDONFOLDERGUID != '00000000-0000-0000-0000-000000000000')
THEN BASEDONFOLDERGUID ELSE PARENTFOLDERGUID END) AS PARENTENTITYGUID, F.Name, 1 AS ENTITYTYPE, F.DateCreated
FROM dbo.Folder AS F INNER JOIN
dbo.FolderSet AS FS ON F.FolderSetGUID = FS.FolderSetGUID
WHERE (NOT (FS.Type IN (0, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)))
UNION ALL
SELECT ListGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTENTITYGUID, Name, 2 AS ENTITYTYPE, GETDATE() AS Expr2
FROM dbo.SecureList
WHERE (ListType = 0) AND (IsSecured = 1)
UNION ALL
SELECT ListMemberGUID AS ENTITYGUID, CASE WHEN (PARENTLISTMEMBERGUID = '00000000-0000-0000-0000-000000000000')
THEN LISTGUID ELSE PARENTLISTMEMBERGUID END AS PARENTENTITYGUID, Name, 2 AS ENTITYTYPE, GETDATE() AS DATECREATED
FROM dbo.SecureListMember
WHERE (ListGUID IN
(SELECT ListGUID
FROM dbo.SecureList AS SecureList_1
WHERE (IsSecured = 1)))
UNION ALL
SELECT ReportGUID AS ENTITYGUID, FolderGUID AS PARENTGUID, Name, 3 AS SECURABLEENTITYTYPE, DateCreated
FROM dbo.REReport
UNION ALL
SELECT PlanTypeGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 4 AS SECURABLEENTITYTYPE, GETDATE()
AS Expr1
FROM dbo.PlanType
UNION ALL
SELECT ForumGUID AS ENTITYGUID, EntityGUID AS PARENTGUID, Name, 5 AS SECURABLEENTITYTYPE, GETDATE() AS DATECREATED
FROM dbo.MsgForum
UNION ALL
SELECT TopicGUID AS ENTITYGUID, ForumGUID AS PARENTGUID, Name, 6 AS SECURABLEENTITYTYPE, GETDATE() AS DATECREATED
FROM dbo.MsgTopic
UNION ALL
SELECT SYSTEMSECTIONGUID AS ENTITYGUID, ParentGUID, Name, 7 AS SECURABLEENTITYTYPE, GETDATE() AS DATECREATED
FROM dbo.SystemSection
UNION ALL
SELECT FORMFIELDGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS Expr1, Name, 8 AS SECURABLEENTITYTYPE, GETDATE()
AS DATECREATED
FROM dbo.FE2FormField
UNION ALL
SELECT PoolGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 10 AS SECURABLEENTITYTYPE, GETDATE()
AS DATECREATED
FROM dbo.OMZPool
UNION ALL
SELECT ListInsertionPointGUID AS ENTITYGUID, ParentListMemberGUID AS PARENTGUID, Name, 11 AS SECURABLEENTITYTYPE, GETDATE()
AS DATECREATED
FROM dbo.SecureListInsertionPoint
UNION ALL
SELECT ActionGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Description, 12 AS SECURABLEENTITYTYPE, GETDATE()
AS DATECREATED
FROM dbo.CustomAction
UNION ALL
SELECT UserGroupGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name AS NAME, 13 AS SECURABLEENTITYTYPE,
GETDATE() AS DATECREATED
FROM dbo.UserGroup
UNION ALL
SELECT WorkflowMapGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 14 AS SECURABLEENTITYTYPE, GETDATE()
AS DATECREATED
FROM dbo.WFWorkflowMap
UNION ALL
SELECT IRCChatGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 15 as SECURABLEENTITYTYPE, getdate()
FROM dbo.IRCChat
UNION ALL
SELECT DesktopTemplateGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 16 AS SECURABLEENTITYTYPE, GETDATE()
AS DATECREATED
FROM dbo.DesktopTemplate
UNION ALL
SELECT DimensionGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, FriendlyName, 19 as SECURABLEENTITYTYPE, getdate()
FROM dbo.ScoreDimension
UNION ALL
SELECT WorkflowStepGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 21 as SECURABLEENTITYTYPE, getdate()
FROM dbo.WFWorkflowStep
UNION ALL
SELECT DataViewGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 22 as SECURABLEENTITYTYPE, getdate()
FROM dbo.DataView
UNION ALL
SELECT ParameterSetGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 23 as SECURABLEENTITYTYPE, getdate()
FROM dbo.REParameterSet
UNION ALL
SELECT CubeGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 24 as SECURABLEENTITYTYPE, getdate()
FROM dbo.EMFCubeStub
UNION ALL
SELECT TableEditorConfigGUID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, FriendlyName, 26 AS SECURABLEENTITYTYPE, GETDATE()
FROM dbo.ScoreTableEditorConfig
UNION ALL
SELECT ConfigID AS ENTITYGUID, '00000000-0000-0000-0000-000000000000' AS PARENTGUID, Name, 39 AS SECURABLEENTITYTYPE, GETDATE() FROM dbo.IntConfig
GO
---------------------------------------------
-- dbo.viewSecurableIdentity
--==========================================================================================
CREATE VIEW [dbo].[viewSecurableIdentity]
AS
SELECT USERGUID AS IDENTITYGUID, NAMELAST + ', ' + NAMEFIRST AS NAME, 0 AS SECURABLEIDENTITYTYPE, IsDisabled
FROM dbo.UserProfile
UNION ALL
SELECT USERGROUPGUID AS IDENTITYGUID, NAME, 1 AS SECURABLEIDENTITYTYPE, 0 AS IsDisabled
FROM dbo.UserGroup
WHERE (TYPE = 0)
UNION ALL
SELECT USERROLEGUID AS IDENTITYGUID, NAME, 2 AS SECURABLEIDENTITYTYPE, 0 AS IsDisabled
FROM dbo.UserRole
GO
---------------------------------------------
-- dbo.viewSecureListMembersFlat
create view viewSecureListMembersFlat as
select
slm.ListGUID,
slm.ListMemberGUID ,
slmp1.ListMemberGUID as Parent1,
slmp2.ListMemberGUID as Parent2,
slmp3.ListMemberGUID as Parent3,
slmp4.ListMemberGUID as Parent4,
slmp5.ListMemberGUID as Parent5,
slmp6.ListMemberGUID as Parent6,
slmp7.ListMemberGUID as Parent7,
slmp8.ListMemberGUID as Parent8,
slmp9.ListMemberGUID as Parent9,
slmp10.ListMemberGUID as Parent10,
slmp11.ListMemberGUID as Parent11,
slmp12.ListMemberGUID as Parent12
from
SecureListMember slm
left join SecureListMember slmp1 on slm.ParentListMemberGUID = slmp1.ListMemberGUID
left join SecureListMember slmp2 on slmp1.ParentListMemberGUID = slmp2.ListMemberGUID
left join SecureListMember slmp3 on slmp2.ParentListMemberGUID = slmp3.ListMemberGUID
left join SecureListMember slmp4 on slmp3.ParentListMemberGUID = slmp4.ListMemberGUID
left join SecureListMember slmp5 on slmp4.ParentListMemberGUID = slmp5.ListMemberGUID
left join SecureListMember slmp6 on slmp5.ParentListMemberGUID = slmp6.ListMemberGUID
left join SecureListMember slmp7 on slmp6.ParentListMemberGUID = slmp7.ListMemberGUID
left join SecureListMember slmp8 on slmp7.ParentListMemberGUID = slmp8.ListMemberGUID
left join SecureListMember slmp9 on slmp8.ParentListMemberGUID = slmp9.ListMemberGUID
left join SecureListMember slmp10 on slmp9.ParentListMemberGUID = slmp10.ListMemberGUID
left join SecureListMember slmp11 on slmp10.ParentListMemberGUID = slmp11.ListMemberGUID
left join SecureListMember slmp12 on slmp11.ParentListMemberGUID = slmp12.ListMemberGUID
GO
---------------------------------------------
-- dbo.viewSecureListParent
CREATE view viewSecureListParent as
SELECT
SL.ListGUID,
CASE WHEN SL.ListType = 1 THEN FF.FormFieldGUID
ELSE '00000000-0000-0000-0000-000000000000'
END as ParentEntityGUID
FROM
SecureList SL
LEFT JOIN FE2FormField FF ON FF.ListSourceConfig like '%' + cast(SL.ListGUID as nvarchar(36)) + '%'
GO
---------------------------------------------
-- dbo.viewSysAllObjects
CREATE VIEW [dbo].[viewSysAllObjects]
AS
select OBJ.object_id as [ObjectID], S.name as [SchemaName], OBJ.name as [ObjectName], OBJ.type_desc
from sys.all_objects OBJ
inner join sys.schemas S on S.schema_id = OBJ.schema_id
GO
---------------------------------------------
-- dbo.viewSysChangeTrackingTables
CREATE VIEW dbo.viewSysChangeTrackingTables
AS
SELECT
s.Name AS SchemaName,
t.Name AS TableName,
p.rows AS ApproximateRowCount
FROM sys.change_tracking_tables ct
INNER JOIN sys.tables t ON ct.object_id = t.object_id
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
INNER JOIN sys.partitions p ON t.object_id = p.object_id
GROUP BY t.Name, s.Name, p.Rows
GO
---------------------------------------------
-- dbo.viewSysColumns
CREATE VIEW [dbo].[viewSysColumns]
AS
select
O.object_id as ObjectID,
COL.Column_id as ColumnID,
S.name as SchemaName,
O.Name as ObjectName,
COL.name as ColumnName,
case when O.type_desc = 'VIEW' then 2 when O.type_desc = 'USER_TABLE' then 1 else 0 end as ObjectType,
COL.max_length as MaxLength,
COL.is_computed as IsComputed,
ISNULL(cast(case when COL.is_nullable is not null then COL.is_nullable else 0 end as bit),0) as IsNullable,
COL.scale as Scale,
COL.Precision as Precision,
COL.is_identity as IsIdentity,
COL.system_type_id as ColumnTypeValue,
cast(ISNULL(IDENT.increment_value, -1) as int) as IdentityIncrement,
cast(ISNULL(IDENT.seed_value, -1) as int) as IdentitySeed,
--'' as ComputedValueDefinition,
case when DEF.definition is not null then DEF.definition else '' end as DefaultValueDefinition,
--'' as DefaultValueDefinition,
CAST(0 as bit) as IsPartOfUniqueIndex,
CAST(0 as bit) as IsUniqueIndex,
CAST(0 as bit) as IsPartOfPrimaryKey,
CAST(0 as bit) as IsPrimaryKey,
--case when COL.is_identity = 1 then cast(IDENT.increment_value as int) else -1 end as IdentityIncrement,
--case when COL.is_identity = 1 then cast(IDENT.seed_value as int) else -1 end as IdentitySeed,
case when COMPUTED.Definition is not null then COMPUTED.definition else '' end as ComputedValueDefinition
--isnull(case when idx.is_unique_count > 0 then CAST(1 as bit) else cast(0 as bit) end, CAST(0 as bit)) as IsPartOfUniqueIndex,
--isnull(case when idx.is_unique_count = 1 then CAST(1 as bit) else cast(0 as bit) end, CAST(0 as bit)) as IsUniqueIndex,
--isnull(case when idx.is_unique_count > 0 then CAST(1 as bit) else cast(0 as bit) end, CAST(0 as bit)) as IsPartOfPrimaryKey,
--isnull(case when idx.is_unique_count = 1 then CAST(1 as bit) else cast(0 as bit) end, CAST(0 as bit)) as IsPrimaryKey
--fk stuff
, CAST(0 as bit) as IsForeignKeyed
,'' as ForeignKeySchema
,'' as ForeignKeyTable
,'' as ForeignKeyColumn
,'' as ForeignKeyOnDelete
--,isnull(case when fkc.column_id is not null then CAST(1 as bit) else CAST(0 as bit) end,cast(0 as bit)) as IsForeignKeyed,
--ISNULL(fks.name,'') as ForeignKeySchema,
--ISNULL(fkt.name,'') as ForeignKeyTable,
--ISNULL(fkc.name,'') as ForeignKeyColumn,
--ISNULL(case when fkdef.delete_referential_action_desc = 'NO_ACTION' then null else fkdef.delete_referential_action_desc end,'') as ForeignKeyOnDelete
from sys.columns COL
inner join sys.objects O on O.object_id = COL.object_id
inner join sys.schemas S on O.schema_id = S.schema_id
left join sys.identity_columns IDENT on IDENT.column_id = COL.column_id and IDENT.object_id = O.object_id
left join sys.computed_columns COMPUTED on COMPUTED.column_id = COL.column_id and COMPUTED.object_id = O.object_id
left join sys.default_constraints DEF on DEF.parent_object_id = O.object_id and DEF.parent_column_id = COL.column_id
--m2m
--LEFT join (
-- select
-- IND_COL.object_id,
-- IND_COL.column_id,
-- sum(CASE WHEN IND.is_unique = 1 then 1 else 0 end) as is_unique_count,
-- sum(CASE WHEN IND.is_primary_key = 1 then 1 else 0 end) as is_primary_key_count
-- from
-- sys.index_columns IND_COL
-- inner join sys.indexes IND on IND.object_id = IND_COL.object_id and IND.index_id = IND_COL.index_id
-- group by
-- IND_COL.object_id,
-- IND_COL.column_id
--) idx on idx.column_id = COL.column_id and idx.object_id = O.object_id
--FK stuff
--left join sys.foreign_key_columns fk on COL.column_id = fk.parent_column_id and COL.object_id = fk.parent_object_id
--left join sys.columns fkc on fk.referenced_column_id = fkc.column_id and fk.referenced_object_id = fkc.object_id
--left join sys.tables fkt on fkc.object_id = fkt.object_id
--left join sys.schemas fks on fkt.schema_id = fks.schema_id
--left join sys.foreign_keys fkdef on fk.constraint_object_id = fkdef.object_id
--where
-- --replace(replace(replace('[{0}].[{1}].[{2}]','{0}', s.name),'{1}', o.name),'{2}', col.name) = '[dbo].[zzviewModelTemplateMapping_GJFModeling].[IsUserMapped]'
-- --s.name + '-' + o.name + '-' + col.name = 'dbo-zzviewModelTemplateMapping_GJFModeling-IsUserMapped'
-- s.name = 'dbo'
-- and o.name = 'zzviewModelTemplateMapping_GJFModeling'
-- and col.name = 'IsUserMapped'
--GROUP BY
-- dbo.IntToGUID(O.object_id), O.object_id, COL.object_id, COL.Column_ID, S.name, O.name, O.type_desc, COL.name, COL.max_length, COL.is_computed, COL.is_nullable, COL.scale,COL.precision, COL.is_identity,
-- COL.system_type_id
GO
---------------------------------------------
-- dbo.viewSysForeignKeys
CREATE VIEW [dbo].[viewSysForeignKeys]
AS
SELECT
FK_Schema = FK.TABLE_SCHEMA,
FK_Table = FK.TABLE_NAME,
FK_Column = CU.COLUMN_NAME,
PK_Schema = PK.TABLE_SCHEMA,
PK_Table = PK.TABLE_NAME,
PK_Column = PT.COLUMN_NAME,
Constraint_Name = C.CONSTRAINT_NAME
FROM
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK
ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK
ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
INNER JOIN
(
SELECT
i1.TABLE_NAME, i2.COLUMN_NAME
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2
ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT
ON PT.TABLE_NAME = PK.TABLE_NAME
GO
---------------------------------------------
-- dbo.viewSysFunctionParameters
CREATE VIEW [dbo].[viewSysFunctionParameters]
AS
select
S.name as [SchemaName],
F.name as [ObjectName],
F.is_ms_shipped as [IsMSShipped],
F.create_date as [CreationDate],
case when F.type = 'FN' then 'Scalar' when f.type='TF' then 'TableValued' end as [FunctionType],
PM.name as [ParameterName],
PM.max_length as [MaxLength],
PM.precision as [Precision],
PM.scale as [Scale],
PM.is_output as [IsOutput],
PM.system_type_id as [DataType]
from sys.all_objects F
inner join sys.schemas S on S.schema_id = F.schema_id
inner join sys.parameters PM on PM.object_id = F.object_id
where F.type = 'FN' or F.type = 'TF'
GO
---------------------------------------------
-- dbo.viewSysIndexColumns
CREATE VIEW [dbo].[viewSysIndexColumns]
AS
select S.name as SchemaName, O.name as ObjectName,
COL.name as ColumnName,
IND.index_id as IndexID,
INDC.is_included_column as IsIncludedColumn,
INDC.index_column_id as ColumnOrder,
INDC.is_descending_key as IsDescending,
COL.max_length as MaxLength,
COL.is_computed as IsComputed,
COL.is_nullable as IsNullable,
COL.scale as Scale,
COL.Precision as Precision,
COL.is_identity as IsIdentity,
COL.system_type_id as ColumnType,
case when COL.is_identity = 1 then cast(IDENT.increment_value as int) else -1 end as IncrementValue,
case when COL.is_identity = 1 then cast(IDENT.seed_value as int) else -1 end as SeedValue,
case when COMPUTED.Definition is not null then COMPUTED.definition else '' end as ComputedDefinition,
case when DEF.definition is not null then DEF.definition else '' end as DefaultValue
from sys.indexes IND
inner join sys.objects O on O.object_id = IND.object_id
inner join sys.schemas S on S.schema_id = O.schema_id
inner join sys.index_columns INDC on INDC.index_id = IND.index_id and INDC.object_id = IND.object_id
inner join sys.columns COL on COL.column_id = INDC.column_id and COL.object_id = INDC.object_id
left join sys.identity_columns IDENT on IDENT.column_id = COL.column_id and IDENT.object_id = O.object_id
left join sys.computed_columns COMPUTED on COMPUTED.column_id = COL.column_id and COMPUTED.object_id = O.object_id
left join sys.default_constraints DEF on DEF.parent_object_id = O.object_id and DEF.parent_column_id = COL.column_id
GO
---------------------------------------------
-- dbo.viewSysIndexDefinitions
--Forward
create view dbo.viewSysIndexDefinitions
as
WITH indexCTE AS
(
SELECT DISTINCT
i.index_id, i.name, i.object_id, i.is_primary_key
FROM
sys.indexes i
INNER JOIN sys.index_columns ic ON i.index_id = ic.index_id AND i.object_id = ic.object_id
),
indexCTE2 AS
(
SELECT
cte.name as IndexName,
OBJECT_NAME(cte.object_ID) as ObjectName,
s.name as SchemaName,
CASE
cte.index_id
WHEN 1 THEN 'CLUSTERED'
ELSE 'NONCLUSTERED'
END AS IndexType,
(
SELECT DISTINCT c.name + ','
FROM
sys.columns c
INNER JOIN sys.index_columns ic on c.object_id = ic.object_id AND ic.column_id = c.column_id AND ic.Is_Included_Column = 0
WHERE
cte.OBJECT_ID = ic.object_id
AND cte.index_id = ic.index_id
FOR XML PATH('')) as ixcols,
ISNULL((
SELECT DISTINCT c.name + ','
FROM
sys.columns c
INNER JOIN sys.index_columns ic ON c.object_id = ic.object_id AND ic.column_id = c.column_id AND ic.Is_Included_Column = 1
WHERE
cte.OBJECT_ID = ic.object_id
AND cte.index_id = ic.index_id
FOR XML PATH('')), '') as includedcols,
cte.is_primary_key as IsPrimaryKey
FROM
indexCTE cte
inner join sys.tables t on t.object_id = cte.object_id
inner join sys.schemas s on s.schema_id = t.schema_id
)
SELECT
SchemaName,
ObjectName,
IndexName,
IsPrimaryKey,
'CREATE ' + IndexType + ' INDEX ' + IndexName + ' ON ' + SchemaName + '.' + ObjectName + '(' + SUBSTRING(ixcols, 1, LEN(ixcols)-1) + CASE LEN(includedcols) WHEN 0 THEN ')' ELSE ') INCLUDE (' + SUBSTRING(includedcols, 1, LEN(includedcols)-1) + ')' END as IndexScript
FROM
indexCTE2
GO
---------------------------------------------
-- dbo.viewSysIndexes
CREATE VIEW [dbo].[viewSysIndexes]
AS
select
S.name as [SchemaName],
O.name as [ObjectName],
IND.index_id as [IndexID],
IND.name as [Name],
IND.type_desc as [Description],
IND.is_unique as [IsUnique],
IND.is_primary_key as [IsPrimaryKey]
from sys.indexes IND
inner join sys.objects O on O.object_id = IND.object_id
inner join sys.schemas S on S.schema_id = O.schema_id
GO
---------------------------------------------
-- dbo.viewSysObjects
CREATE VIEW [dbo].[viewSysObjects]
AS
select
S.name + '.' + O.name as SQLObjectExpression,
S.name as SchemaName,
O.name as ObjectName,
isnull(case when O.type_desc = 'VIEW' then CAST(1 as bit) else CAST(0 as bit) end, CAST(1 as bit)) as IsView
from sys.objects O
inner join sys.schemas S on S.schema_id = O.schema_id
where O.type_desc = 'USER_TABLE' OR O.type_desc = 'VIEW'
GO
---------------------------------------------
-- dbo.viewSysProcParameters
CREATE VIEW [dbo].[viewSysProcParameters]
AS
SELECT S.NAME AS [SchemaName]
,P.NAME AS [ObjectName]
,dbo.StripNewLine(SUBSTRING(SUBSTRING(M.DEFINITION, PATINDEX('%CREATE PROC%', M.DEFINITION), LEN(M.DEFINITION)), 1, PATINDEX('%[^a-Z]AS%', SUBSTRING(M.DEFINITION, PATINDEX('%CREATE PROC%', M.DEFINITION), LEN(M.DEFINITION))) - 1)) AS [Comments]
,SUBSTRING(M.DEFINITION, CHARINDEX('CREATE PROC', M.DEFINITION), LEN(M.DEFINITION)) AS [Definition]
,P.is_ms_shipped AS [IsMSShipped]
,P.create_date AS [CreationDate]
,PM.NAME AS [ParameterName]
,PM.max_length AS [MaxLength]
,PM.precision AS [Precision]
,PM.scale AS [Scale]
,PM.is_output AS [IsOutput]
,PM.system_type_id AS [DataType]
,PM.user_type_id AS [UserType]
FROM sys.procedures P
INNER JOIN sys.parameters PM ON P.object_id = PM.object_id
INNER JOIN sys.schemas S ON S.schema_id = P.schema_id
INNER JOIN sys.sql_modules M ON M.object_id = P.object_id
GO
---------------------------------------------
-- dbo.viewSysProcWithParameters
CREATE VIEW [dbo].[viewSysProcWithParameters]
AS
SELECT P.SchemaName
,P.ObjectName
,ISNULL(PM.Comments, '') AS [Comments]
,ISNULL(PM.DEFINITION, SUBSTRING(M.DEFINITION, CHARINDEX('CREATE PROC', M.DEFINITION), LEN(M.DEFINITION))) + '' AS [Definition]
,ISNULL(PM.IsMSShipped, 0) AS [IsMSShipped]
,ISNULL(PM.CreationDate, GETDATE()) AS [CreationDate]
,ISNULL(PM.ParameterName, '') AS [ParameterName]
,ISNULL(PM.MaxLength, 0) AS [MaxLength]
,ISNULL(PM.Precision, 0) AS [Precision]
,ISNULL(PM.Scale, 0) AS [Scale]
,ISNULL(PM.DataType, 0) AS [DataType]
,ISNULL(PM.UserType, 0) AS [UserType]
,ISNULL(PM.IsOutput, 0) AS [IsOutput]
,ISNULL(SUBSTRING(PM.ParameterName, 2, Len(ParameterName)), '') AS [ArgumentName]
FROM viewSysProcedures P
INNER JOIN sys.sql_modules M ON M.object_id = P.object_id
LEFT JOIN viewsysprocparameters PM ON P.ObjectName = PM.ObjectName
AND p.SchemaName = PM.SchemaName
GO
---------------------------------------------
-- dbo.viewSysProcedures
CREATE VIEW [dbo].[viewSysProcedures]
AS
select S.name as [SchemaName], PR.name as [ObjectName], PR.object_id
from sys.procedures PR
inner join sys.schemas S on S.schema_id = PR.schema_id
GO
---------------------------------------------
-- dbo.viewSysViewBaseTables
CREATE view [dbo].[viewSysViewBaseTables]
AS
WITH TBLS (ViewSchema, ViewName, TableSchema, TableName, TableType, [Level])
AS
(
select
U.VIEW_SCHEMA
,U.VIEW_NAME
,U.TABLE_SCHEMA
,U.TABLE_NAME
,T.TABLE_TYPE
,0
from INFORMATION_SCHEMA.VIEW_TABLE_USAGE U
inner join INFORMATION_SCHEMA.TABLES T on T.TABLE_CATALOG = U.TABLE_CATALOG and T.TABLE_SCHEMA = U.TABLE_SCHEMA and T.TABLE_NAME = U.TABLE_NAME
where (U.VIEW_NAME <> U.TABLE_NAME or (U.VIEW_SCHEMA <> U.TABLE_SCHEMA and U.VIEW_NAME = U.TABLE_NAME))
UNION ALL
select
ANCHOR.ViewSchema
,ANCHOR.ViewName
,REC.TABLE_SCHEMA
,REC.TABLE_NAME
,T.TABLE_TYPE
,[Level] + 1
from INFORMATION_SCHEMA.VIEW_TABLE_USAGE REC
inner join TBLS ANCHOR on ANCHOR.TableName = REC.VIEW_NAME and ANCHOR.TableSchema = REC.VIEW_SCHEMA
inner join INFORMATION_SCHEMA.TABLES T on T.TABLE_CATALOG = REC.TABLE_CATALOG and T.TABLE_SCHEMA = REC.TABLE_SCHEMA and T.TABLE_NAME = REC.TABLE_NAME
where (REC.VIEW_NAME <> REC.TABLE_NAME or (REC.VIEW_SCHEMA <> REC.TABLE_SCHEMA and REC.VIEW_NAME = REC.TABLE_NAME))
)
SELECT
ViewSchema, ViewName, TableSchema, TableName, TableType, MIN(LEVEL) as [Level]
FROM TBLS
group by ViewSchema, ViewName, TableSchema, TableName, TableType
GO
---------------------------------------------
-- dbo.viewSystemCenterStep
create view dbo.viewSystemCenterStep
as
select
s.Name as Solution,
m.Name as Module,
c.Name as Category,
sc.Name as Section,
s.*
from
SystemCenterStep s
inner join SystemCenterSection sc on sc.SectionGUID = s.SectionGUID
inner join SystemCenterCategory c on c.CategoryGUID = sc.CategoryGUID
inner join SystemCenterModule m on m.ModuleGUID = c.ModuleGUID
inner join SystemCenterSolution sl on sl.SolutionGUID = m.SolutionGUID
GO
---------------------------------------------
-- dbo.viewSystemSectionFlat
CREATE view [dbo].[viewSystemSectionFlat] as
select
ss1.SYSTEMSECTIONGUID as ss1,
ss2.SYSTEMSECTIONGUID as ss2,
ss3.SYSTEMSECTIONGUID as ss3,
ss4.SYSTEMSECTIONGUID as ss4,
ss5.SYSTEMSECTIONGUID as ss5,
ss6.SYSTEMSECTIONGUID as ss6
from
SystemSection ss1
left join SystemSection ss2 on ss1.ParentGUID = ss2.SYSTEMSECTIONGUID
left join SystemSection ss3 on ss2.ParentGUID = ss3.SYSTEMSECTIONGUID
left join SystemSection ss4 on ss3.ParentGUID = ss4.SYSTEMSECTIONGUID
left join SystemSection ss5 on ss4.ParentGUID = ss5.SYSTEMSECTIONGUID
left join SystemSection ss6 on ss5.ParentGUID = ss6.SYSTEMSECTIONGUID
GO
---------------------------------------------
-- dbo.viewTemplateSectionCounts
CREATE VIEW [dbo].[viewTemplateSectionCounts]
AS
WITH
actualFillinCountByMainTemplate AS (
SELECT
COALESCE(SEP.[ParentModelTemplateGUID], P.[ModelTemplateGUID]) AS [ModelTemplateGUID],
SF.[ModelGUID],
SF.[PlaceholderSectionMemberGUID],
COUNT(SF.[FillinGUID]) AS [Total]
FROM [dbo].[ScoreFillin] AS SF
INNER JOIN [dbo].[XPlan] AS P
ON P.[PlanGUID] = SF.[ModelGUID]
LEFT JOIN [dbo].[MEScoreExpansionProfile] AS SEP
ON SEP.[ChildModelTemplateGUID] = P.[ModelTemplateGUID]
GROUP BY COALESCE(SEP.[ParentModelTemplateGUID], P.[ModelTemplateGUID]), SF.[ModelGUID], SF.[PlaceholderSectionMemberGUID]
)
SELECT
TS.[TemplateGUID] AS [TemplateGUID],
PH.[FriendlyName] AS [SectionName],
TS.[SettingID],
COALESCE(MAX(FC.[Total]), 0) AS [ActualMaxNumberOfFillins],
COALESCE(MAX(TS.[Value]), 0) AS [ActualSectionCount]
FROM [dbo].[TemplateSettings] AS TS
INNER JOIN [dbo].[MEPHSection] AS PH
ON TS.[TemplateGUID] = PH.[ModelTemplateGUID] AND PH.[FriendlyName] = SUBSTRING(TS.[SettingID], 18, LEN(TS.[SettingID]))
LEFT JOIN actualFillinCountByMainTemplate AS FC
ON FC.[PlaceholderSectionMemberGUID] = PH.[PHSectionMemberGUID] AND FC.[ModelTemplateGUID] = TS.[TemplateGUID]
WHERE 1=1
AND TS.[SettingID] LIKE 'Section Counts%'
GROUP BY TS.[TemplateGUID], PH.[FriendlyName], TS.[SettingID]
GO
---------------------------------------------
-- dbo.viewTemplateSectionCountsWithRecommended
CREATE VIEW [dbo].[viewTemplateSectionCountsWithRecommended]
AS
SELECT
SC.[TemplateGUID],
SC.[SectionName],
SC.[SettingID],
SC.[ActualMaxNumberOfFillins],
SC.[ActualSectionCount],
SC.[ActualMaxNumberOfFillins] + 10 AS [RecommendedSectionCount]
FROM [dbo].[viewTemplateSectionCounts] AS SC
GO
---------------------------------------------
-- dbo.viewUpgradeDate
--Forward
create view viewUpgradeDate
as
select
[Version],
MIN(LogDate) UpgradeDate
from
UpgradeLog
group by
[Version]
GO
---------------------------------------------
-- dbo.viewUserLimit_UnassignedUsers
CREATE view viewUserLimit_UnassignedUsers as
select *
from
UserProfile (Nolock)
where
UserGUID not in (select UserGUID from UserTag)
GO
---------------------------------------------
-- dbo.viewUserLoginHistory
CREATE VIEW [dbo].[viewUserLoginHistory] AS
SELECT up.UserGUID, up.namefirst + ' ' + up.namelast AS Name, MAX(loginstamp) AS LastLogin, MIN(loginstamp) AS FirstLogin, COUNT(*) AS NumLogins
FROM loginhistory lh (READUNCOMMITTED) INNER JOIN userprofile up (READUNCOMMITTED)
ON lh.userguid = up.userguid
GROUP BY up.UserGUID, up.namefirst + ' ' + up.namelast
GO
---------------------------------------------
-- dbo.viewWFChangeHistory
CREATE view [dbo].[viewWFChangeHistory] as
select WFM.Name as WORKFLOWNAME, U.UserName as MODIFIER, H.* from HistoryItem H
inner join WFWorkFlowMap WFM on H.OBJECTGUID = WFM.WorkFlowMapGUID
left join UserProfile U on H.ModifierUserGUID = U.UserGUID
GO
---------------------------------------------
-- dbo.viewWFEntity
CREATE VIEW [dbo].[viewWFEntity]
WITH SCHEMABINDING
AS
SELECT
PlanGUID AS EntityGUID,
Name AS EntityName,
PlanTypeGUID,
CachedLootID,
AuthorUserGUID
FROM [dbo].[XPlan]
WHERE PlanTypeGUID <> '2898A6EB-3CAE-47D9-AF28-FC959F1E3955' -- Substitution Plan Type GUID
AND IsDeletedPlan = 0
UNION ALL
SELECT
MemberGUID AS EntityGUID,
COALESCE(xplan.Name, NameCalc) AS EntityName,
'2898A6EB-3CAE-47D9-AF28-FC959F1E3955' AS PlanTypeGUID, -- Substitution Plan Type GUID
'P|' + CONVERT(VARCHAR, [LootID]) AS CachedLootID,
AuthorGUID AS AuthorUserGUID
FROM [cap].[DimSubstitution] substitution
LEFT JOIN [dbo].[XPlan] xplan ON xplan.PlanGUID = substitution.MemberGUID
WHERE xplan.IsDeletedPlan = 0 OR xplan.IsDeletedPlan IS NULL
GO
---------------------------------------------
-- dbo.viewWFMissingReviewerPermissions
--Forward
CREATE view [dbo].[viewWFMissingReviewerPermissions]
as
--permissions for plan type's permission set
select distinct
S.WorkflowMapGUID,
PS.PermissionSetID,
UR.RoleID,
0 as [Weight],
null as ReadValue,
null as WriteValue,
null as SecureValue,
null as CreateValue,
null as DeleteValue
from
WFReviewerAssignment RA
inner join WFWorkflowStep S on S.WorkflowStepGUID = RA.WorkflowStepGUID
inner join UserRole UR on UR.UserRoleGUID = RA.IdentityGUID
inner join PlanTypeWorkflowMapLink L on L.WorkflowMapGUID = S.WorkflowMapGUID
inner join PlanType PT on PT.PlanTypeGUID = L.PlanTypeGUID
inner join ScoreDimension D on D.DimensionGUID = PT.DimensionGUID and D.IsSecured = 1
inner join S3PermissionSet PS on PS.PermissionSetID = D.PermissionSetID
where
not exists(select 1 from S3Permission P where P.PermissionSetID = PS.PermissionSetID and P.RoleID = UR.RoleID)
and PS.IsLocked = 0
union all
--permission for any parent dimensions of plan dimension
select distinct
S.WorkflowMapGUID,
PS.PermissionSetID,
UR.RoleID,
0 as [Weight],
null as ReadValue,
null as WriteValue,
null as SecureValue,
null as CreateValue,
null as DeleteValue
from
WFReviewerAssignment RA
inner join WFWorkflowStep S on S.WorkflowStepGUID = RA.WorkflowStepGUID
inner join UserRole UR on UR.UserRoleGUID = RA.IdentityGUID
inner join PlanTypeWorkflowMapLink L on L.WorkflowMapGUID = S.WorkflowMapGUID
inner join PlanType PT on PT.PlanTypeGUID = L.PlanTypeGUID
inner join ScoreDimension D on D.DimensionGUID = PT.DimensionGUID and D.IsSecured = 1
inner join viewScoreAttribute A on A.DimensionGUID = D.DimensionGUID and A.IsSecuredLootGroupID = 1
inner join viewScoreAttribute FKA on FKA.AttributeGUID = A.ForeignKeyGUID
inner join ScoreDimension FKD on FKD.DimensionGUID = FKA.DimensionGUID and FKD.IsSecured = 1
inner join S3PermissionSet PS on PS.PermissionSetID = FKD.PermissionSetID and PS.PermissionSetID != D.PermissionSetID
where
not exists(select 1 from S3Permission P where P.PermissionSetID = PS.PermissionSetID and P.RoleID = UR.RoleID)
and PS.IsLocked = 0
GO
---------------------------------------------
-- dbo.viewWFObjectsByFolder
CREATE view [dbo].[viewWFObjectsByFolder]
as
--workflows
select WF.WorkflowMapGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFWorkflowMap WF
union all
--phases
select P.ProcessGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFProcess P inner join WFWorkflowMap WF on WF.WorkflowMapGUID = P.WORKFLOWMAPGUID
union all
--steps
select S.WorkflowStepGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFWorkflowStep S inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WORKFLOWMAPGUID
union all
--process-step links
select L.PROCESSSTEPLINKGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFProcessStepLink L inner join WFWorkflowMap WF on WF.WorkflowMapGUID = L.WORKFLOWMAPGUID
union all
--transitions
select T.TRANSITIONGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFTransition T inner join WFWorkflowMap WF on WF.WorkflowMapGUID = T.WORKFLOWMAPGUID
union all
--step reviewers
select RA.REVIEWERASSIGNMENTGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFReviewerAssignment RA inner join WFWorkflowStep S on S.WorkflowStepGUID = RA.WORKFLOWSTEPGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WorkflowMapGUID
union all
--step review values
select RVT.STEPREVIEWVALUETYPELINKGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFStepReviewValueTypeLink RVT inner join WFWorkflowStep S on S.WorkflowStepGUID = RVT.WORKFLOWSTEPGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WorkflowMapGUID
union all
--step events
select EP.EVENTPLANGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFEventPlan EP inner join WFWorkflowStep S on S.OnStartEventPlanGUID = EP.EVENTPLANGUID or S.OnEndEventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WorkflowMapGUID
union all
--transition events
select EP.EVENTPLANGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFEventPlan EP inner join WFTransition T on T.EventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = T.WorkflowMapGUID
union all
--step event statements
select EPS.EventPlanStatementGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFEventPlanStatement EPS inner join WFEventPlan EP on EP.EVENTPLANGUID = EPS.EventPlanGUID inner join WFWorkflowStep S on S.OnStartEventPlanGUID = EP.EVENTPLANGUID or S.OnEndEventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WorkflowMapGUID
union all
--transition event statements
select EPS.EventPlanStatementGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFEventPlanStatement EPS inner join WFEventPlan EP on EP.EVENTPLANGUID = EPS.EventPlanGUID inner join WFTransition T on T.EventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = T.WorkflowMapGUID
union all
--exit conditionsets
select CS.ConditionSetGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFConditionSet CS inner join WFTransition T on T.CONDITIONSETGUID = CS.CONDITIONSETGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = T.WORKFLOWMAPGUID
union all
--qualification conditionsets
select CS.ConditionSetGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFConditionSet CS inner join WFWorkflowStep S on S.QualifyConditionSetGUID = CS.CONDITIONSETGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WorkflowMapGUID
union all
--step event conditionsets
select CS.ConditionSetGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFConditionSet CS inner join WFEventPlanStatement EPS on EPS.StatementGUID = CS.CONDITIONSETGUID inner join WFEventPlan EP on EP.EVENTPLANGUID = EPS.EventPlanGUID inner join WFWorkflowStep S on S.OnStartEventPlanGUID = EP.EVENTPLANGUID or S.OnEndEventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WorkflowMapGUID
union all
--transition event conditionsets
select CS.ConditionSetGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFConditionSet CS inner join WFEventPlanStatement EPS on EPS.StatementGUID = CS.CONDITIONSETGUID inner join WFEventPlan EP on EP.EVENTPLANGUID = EPS.EventPlanGUID inner join WFTransition T on T.EventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = T.WorkflowMapGUID
union all
--exit conditions
select C.ConditionGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFCondition C inner join WFConditionSet CS on CS.CONDITIONSETGUID = C.ConditionSetGUID inner join WFTransition T on T.CONDITIONSETGUID = CS.CONDITIONSETGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = T.WORKFLOWMAPGUID
union all
--qualification conditions
select C.ConditionGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFCondition C inner join WFConditionSet CS on CS.CONDITIONSETGUID = C.ConditionSetGUID inner join WFWorkflowStep S on S.QualifyConditionSetGUID = CS.CONDITIONSETGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WorkflowMapGUID
union all
--step event conditions
select C.ConditionGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFCondition C inner join WFConditionSet CS on CS.CONDITIONSETGUID = C.ConditionSetGUID inner join WFEventPlanStatement EPS on EPS.StatementGUID = CS.CONDITIONSETGUID inner join WFEventPlan EP on EP.EVENTPLANGUID = EPS.EventPlanGUID inner join WFWorkflowStep S on S.OnStartEventPlanGUID = EP.EVENTPLANGUID or S.OnEndEventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WorkflowMapGUID
union all
--transition event conditions
select C.ConditionGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from WFCondition C inner join WFConditionSet CS on CS.CONDITIONSETGUID = C.ConditionSetGUID inner join WFEventPlanStatement EPS on EPS.StatementGUID = CS.CONDITIONSETGUID inner join WFEventPlan EP on EP.EVENTPLANGUID = EPS.EventPlanGUID inner join WFTransition T on T.EventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = T.WorkflowMapGUID
union all
--step event actions
select CA.ActionGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from CustomAction CA inner join WFEventPlanStatement EPS on EPS.StatementGUID = CA.ActionGUID inner join WFEventPlan EP on EP.EVENTPLANGUID = EPS.EventPlanGUID inner join WFWorkflowStep S on S.OnStartEventPlanGUID = EP.EVENTPLANGUID or S.OnEndEventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = S.WorkflowMapGUID where CA.ActionType = 1
union all
--transition event actions
select CA.ActionGUID as ObjectGUID, WF.WorkflowMapGUID, WF.FolderGUID from CustomAction CA inner join WFEventPlanStatement EPS on EPS.StatementGUID = CA.ActionGUID inner join WFEventPlan EP on EP.EVENTPLANGUID = EPS.EventPlanGUID inner join WFTransition T on T.EventPlanGUID = EP.EVENTPLANGUID inner join WFWorkflowMap WF on WF.WorkflowMapGUID = T.WorkflowMapGUID where CA.ActionType = 1
GO
---------------------------------------------
-- dbo.viewWFOverdueReviewLogToday
create view dbo.viewWFOverdueReviewLogToday
as
select * from [dbo].[WFOverdueReviewLog] where DateTimeStamp >= getdate() - 1
GO
---------------------------------------------
-- dbo.viewWFOverdueReviews
CREATE view [dbo].[viewWFOverdueReviews]
as
select distinct
R.PlanGUID,
R.UserGUID,
R.WorkflowStepGUID,
S.WorkflowMapGUID
from
viewWFReviewerAssignment R
inner join WFToken T (readuncommitted) on T.WorkflowStepGUID = R.WorkflowStepGUID and T.EntityGUID = R.PlanGUID
inner join WFWorkflowStep S (readuncommitted) on S.WorkflowStepGUID = R.WorkflowStepGUID
inner join dbo.viewWFEntity E on E.EntityGUID = R.PlanGUID
where
S.ReminderDaysThreshold > 0
and S.ReminderDaysThreshold <= (select DATEDIFF(day, MAX(H.DateTimeStamp), GETDATE()) from WFHistory H (readuncommitted) where H.HistoryType = 1 and H.EntityGUID = R.PlanGUID and H.WorkflowStepGUID = R.WorkflowStepGUID)
and not exists(select 1 from [dbo].[WFReviewValue] rv (readuncommitted) where rv.WorkflowStepGUID = S.WorkflowStepGUID and rv.IdentityGUID = R.UserGUID and rv.EntityGUID = E.EntityGUID)
GO
---------------------------------------------
-- dbo.viewWFReviewerAssignment
CREATE view [dbo].[viewWFReviewerAssignment]
as
--NOTE: results may not be distinct, so this is best used within an exists clause
select
E.EntityGUID as PlanGUID,
RA.WorkflowStepGUID,
isnull(RD.DelegateUserGUID, UP.UserGUID) as UserGUID
from
viewWFEntity E (readuncommitted)
inner join S3Loot L (readuncommitted) on L.LootID = E.CachedLootID
inner join WFToken T (readuncommitted) on T.ENTITYGUID = E.EntityGUID
inner join WFWorkflowStep WFS (readuncommitted) on WFS.WorkflowMapGUID = T.WorkflowMapGUID
inner join WFReviewerAssignment RA (readuncommitted) on RA.WORKFLOWSTEPGUID = WFS.WORKFLOWSTEPGUID
inner join S3IdentityLink sIL (readuncommitted) on sIL.GroupingGUID = RA.IdentityGUID
inner join UserProfile UP (readuncommitted) on UP.UserGUID = sIL.MemberGUID
left join WFReviewerDelegate RD (readuncommitted) on RD.WorkflowStepGUID = RA.WorkflowStepGUID and RD.EntityGUID = E.EntityGUID and RD.ReviewerUserGUID = UP.UserGUID
union all
select
E.EntityGUID as PlanGUID,
RA.WorkflowStepGUID,
isnull(RD.DelegateUserGUID, UP.UserGUID) as UserGUID
from
viewWFEntity E (readuncommitted)
inner join S3Loot L (readuncommitted) on L.LootID = E.CachedLootID
inner join WFToken T (readuncommitted) on T.ENTITYGUID = E.EntityGUID
inner join WFWorkflowStep WFS (readuncommitted) on WFS.WorkflowMapGUID = T.WorkflowMapGUID
inner join WFReviewerAssignment RA (readuncommitted) on RA.WORKFLOWSTEPGUID = WFS.WORKFLOWSTEPGUID
inner join S3LootGroup sLG (readuncommitted) on sLG.LootID = L.LootID
inner join UserRole sR (readuncommitted) on sR.UserRoleGUID = RA.IdentityGUID
inner join S3RoleAssignment sRA (readuncommitted) on sRA.LootGroupID = sLG.LootGroupID and sR.RoleID = sRA.RoleID
inner join UserProfile UP (readuncommitted) on UP.UserGUID = sRA.IdentityGUID
left join WFReviewerDelegate RD (readuncommitted) on RD.WorkflowStepGUID = RA.WorkflowStepGUID and RD.EntityGUID = E.EntityGUID and RD.ReviewerUserGUID = UP.UserGUID
union all
select
E.EntityGUID as PlanGUID,
RA.WorkflowStepGUID,
isnull(RD.DelegateUserGUID, UP.UserGUID) as UserGUID
from
viewWFEntity E (readuncommitted)
inner join S3Loot L (readuncommitted) on L.LootID = E.CachedLootID
inner join WFToken T (readuncommitted) on T.ENTITYGUID = E.EntityGUID
inner join WFWorkflowStep WFS (readuncommitted) on WFS.WorkflowMapGUID = T.WorkflowMapGUID
inner join WFReviewerAssignment RA (readuncommitted) on RA.WORKFLOWSTEPGUID = WFS.WORKFLOWSTEPGUID
inner join S3LootGroup sLG (readuncommitted) on sLG.LootID = L.LootID
inner join UserRole sR (readuncommitted) on sR.UserRoleGUID = RA.IdentityGUID
inner join S3RoleAssignment sRA (readuncommitted) on sRA.LootGroupID = sLG.LootGroupID and sR.RoleID = sRA.RoleID
inner join S3IdentityLink sIL (readuncommitted) on sIL.GroupingGUID = sRA.IdentityGUID
inner join UserProfile UP (readuncommitted) on UP.UserGUID = sIL.MemberGUID
left join WFReviewerDelegate RD (readuncommitted) on RD.WorkflowStepGUID = RA.WorkflowStepGUID and RD.EntityGUID = E.EntityGUID and RD.ReviewerUserGUID = UP.UserGUID
GO
---------------------------------------------
-- dbo.viewWFReviewerAssignmentIndexedAll
CREATE view [dbo].[viewWFReviewerAssignmentIndexedAll]
as
--NOTE: results may not be distinct, so this is best used within an exists clause
SELECT
OBJ.PlanGUID,
OBJ.WorkflowStepGUID,
OBJ.UserGUID
FROM
dbo.viewWFReviewerAssignmentIndexedByGroup OBJ (readuncommitted)
union
SELECT
OBJ.PlanGUID,
OBJ.WorkflowStepGUID,
OBJ.UserGUID
FROM
dbo.viewWFReviewerAssignmentIndexedByRole OBJ (readuncommitted)
union
SELECT
OBJ.PlanGUID,
OBJ.WorkflowStepGUID,
OBJ.UserGUID
FROM
dbo.viewWFReviewerAssignmentIndexedByRoleGroup OBJ (readuncommitted)
GO
---------------------------------------------
-- dbo.viewWFReviewerAssignmentIndexedByGroup
CREATE view [dbo].[viewWFReviewerAssignmentIndexedByGroup]
as
select
RA.PlanGUID,
RA.WorkflowStepGUID,
coalesce(D.DelegateUserGUID, RA.UserGUID) as UserGUID
from
viewWFReviewerAssignmentNoDelegatesByGroup RA with (noexpand)
left join WFReviewerDelegate D (readuncommitted) on D.ReviewerUserGUID = RA.UserGUID and D.WorkflowStepGUID = RA.WorkflowStepGUID and D.EntityGUID = RA.PlanGUID
GO
---------------------------------------------
-- dbo.viewWFReviewerAssignmentIndexedByRole
CREATE view [dbo].[viewWFReviewerAssignmentIndexedByRole]
as
select
RA.PlanGUID,
RA.WorkflowStepGUID,
coalesce(D.DelegateUserGUID, RA.UserGUID) as UserGUID
from
viewWFReviewerAssignmentNoDelegatesByRole RA with (noexpand)
left join WFReviewerDelegate D (readuncommitted) on D.ReviewerUserGUID = RA.UserGUID and D.WorkflowStepGUID = RA.WorkflowStepGUID and D.EntityGUID = RA.PlanGUID
GO
---------------------------------------------
-- dbo.viewWFReviewerAssignmentIndexedByRoleGroup
--Author: gforeman
--Branch: Firefly
--Forward
create view [dbo].[viewWFReviewerAssignmentIndexedByRoleGroup]
as
select
RA.PlanGUID,
RA.WorkflowStepGUID,
coalesce(D.DelegateUserGUID, RA.UserGUID) as UserGUID
from
viewWFReviewerAssignmentNoDelegatesByRoleGroup RA with (noexpand)
left join WFReviewerDelegate D (readuncommitted) on D.ReviewerUserGUID = RA.UserGUID and D.WorkflowStepGUID = RA.WorkflowStepGUID and D.EntityGUID = RA.PlanGUID
GO
---------------------------------------------
-- dbo.viewWFReviewerAssignmentNoDelegatesByGroup
CREATE view [dbo].[viewWFReviewerAssignmentNoDelegatesByGroup] with schemabinding
as
--NOTE: results may not be distinct, so this is best used within an exists clause
select
T.EntityGUID as PlanGUID,
WFS.WorkflowStepGUID,
sIL.MemberGUID as UserGUID,
COUNT_BIG(*) as Cnt
from
dbo.WFToken T
inner join dbo.WFWorkflowStep WFS on WFS.WorkflowMapGUID = T.WorkflowMapGUID
inner join dbo.WFReviewerAssignment RA on RA.WORKFLOWSTEPGUID = WFS.WORKFLOWSTEPGUID
inner join dbo.S3IdentityLink sIL on sIL.GroupingGUID = RA.IdentityGUID
group by
T.EntityGUID,
WFS.WorkflowStepGUID,
sIL.MemberGUID
GO
---------------------------------------------
-- dbo.viewWFReviewerAssignmentNoDelegatesByRole
CREATE view [dbo].[viewWFReviewerAssignmentNoDelegatesByRole] with schemabinding
as
--NOTE: results may not be distinct, so this is best used within an exists clause
select
P.PlanGUID,
WFS.WorkflowStepGUID,
sRA.IdentityGUID as UserGUID,
COUNT_BIG(*) as Cnt
from
dbo.XPlan P
inner join dbo.WFToken T on T.ENTITYGUID = P.PlanGUID
inner join dbo.WFWorkflowStep WFS on WFS.WorkflowMapGUID = T.WorkflowMapGUID
inner join dbo.WFReviewerAssignment RA on RA.WORKFLOWSTEPGUID = WFS.WORKFLOWSTEPGUID
inner join dbo.S3LootGroup sLG on sLG.LootID = P.CachedLootID
inner join dbo.UserRole sR on sR.UserRoleGUID = RA.IdentityGUID
inner join dbo.S3RoleAssignment sRA on sRA.LootGroupID = sLG.LootGroupID and sR.RoleID = sRA.RoleID
group by
P.PlanGUID,
WFS.WorkflowStepGUID,
sRA.IdentityGUID
GO
---------------------------------------------
-- dbo.viewWFReviewerAssignmentNoDelegatesByRoleGroup
CREATE view [dbo].[viewWFReviewerAssignmentNoDelegatesByRoleGroup] with schemabinding
as
--NOTE: results may not be distinct, so this is best used within an exists clause
--Includes only reviewers that are assigned to a group that is in a role that is the direct reviewer
select
P.PlanGUID,
WFS.WorkflowStepGUID,
sIL.MemberGUID as UserGUID,
COUNT_BIG(*) as Cnt
from
dbo.XPlan P
inner join dbo.WFToken T on T.ENTITYGUID = P.PlanGUID
inner join dbo.WFWorkflowStep WFS on WFS.WorkflowMapGUID = T.WorkflowMapGUID
inner join dbo.WFReviewerAssignment RA on RA.WORKFLOWSTEPGUID = WFS.WORKFLOWSTEPGUID
inner join dbo.S3LootGroup sLG on sLG.LootID = P.CachedLootID
inner join dbo.UserRole sR on sR.UserRoleGUID = RA.IdentityGUID
inner join dbo.S3RoleAssignment sRA on sRA.LootGroupID = sLG.LootGroupID and sR.RoleID = sRA.RoleID
inner join dbo.S3IdentityLink sIL on sIL.GroupingGUID = sRA.IdentityGUID
group by
P.PlanGUID,
WFS.WorkflowStepGUID,
sIL.MemberGUID
GO
---------------------------------------------
-- dbo.viewWFSetup
CREATE view [dbo].[viewWFSetup] as
SELECT
PT.PlanTypeGUID,
PT.Name AS PTName,
WM.WorkflowMapGUID,
WM.Name AS WMName,
P.ProcessGUID,
P.Name AS PName,
WS.WorkflowStepGUID,
WS.Name AS WSName,
P.DisplayOrder as PDisplayOrder,
WS.DisplayOrder as WSDisplayOrder
FROM
PlanType PT
INNER JOIN PlanTypeWorkflowMapLink L ON PT.PlanTypeGUID = L.PlanTypeGUID
INNER JOIN WFWorkflowMap WM ON WM.WorkflowMapGUID = L.WorkflowMapGUID
INNER JOIN WFWorkflowStep WS ON WS.WorkflowMapGUID = WM.WorkflowMapGUID
LEFT JOIN WFProcessStepLink PSL ON PSL.WorkflowStepGUID = WS.WorkflowStepGUID
LEFT JOIN WFProcess P ON P.ProcessGUID = PSL.ProcessGUID
--ORDER BY
-- PT.Name, WM.Name, P.DisplayOrder, WS.DisplayOrder
GO
---------------------------------------------
-- dbo.viewWFWorkflowStepCore30
CREATE view dbo.viewWFWorkflowStepCore30
as
select
isnull(m.Name, 'Step Templates') as WorkflowMapName,
s.*
from
dbo.WFWorkflowStep s
left join dbo.WFWorkflowMap m on m.WorkflowMapGUID = s.WorkflowMapGUID
GO
---------------------------------------------
-- dbo.viewXPlanWithLocks
CREATE view [dbo].[viewXPlanWithLocks]
as
select
isnull(
case
when L.LockGUID is not null or P.IsFinancialsLocked = 1 or P.IsSuspended = 1 then cast(1 as bit)
else cast(0 as bit) end,
cast(0 as bit)) as IsLocked,
case
when L.LockGUID is not null then 'Locked for edit by ' + L.UserName + ' (' + cast(L.DateLocked as nvarchar(max)) + ')'
when P.IsFinancialsLocked = 1 then 'This plan has been finalized and is no longer editable'
when P.IsSuspended = 1 then 'Budget suspended by ' + P.SuspendedByUserName + ' (' + cast(P.DateSuspended as nvarchar(max)) + ')'
else '' end as LockReason,
P.*
from
dbo.XPlan P with (readuncommitted)
left join Lock L with (readuncommitted) on L.ItemGUID = P.PlanGUID and L.LockGroup = 'PlanLock'
inner join EMFModelTemplate MT on P.ModelTemplateGUID = MT.ModelTemplateGUID
GO
---------------------------------------------
---------------------------------------------
-- PROCEDURES
---------------------------------------------
-- dbo.ConvertIntToBigIntByColumnNameNoCompression
CREATE PROCEDURE [dbo].[ConvertIntToBigIntByColumnNameNoCompression] (@sourceSchema nvarchar(100), @sourceTable nvarchar(200), @columnName nvarchar(200), @debug bit=0, @expectedType nvarchar(100)='bigint')
AS
SET NOCOUNT ON
DECLARE @runTime datetime=getdate()
DECLARE @cmd nvarchar(max)
DECLARE @targetTable nvarchar(200)
DECLARE @objectId int
DECLARE @name nvarchar(max)
DECLARE @definition nvarchar(4000)
DECLARE @colName nvarchar(100)
DECLARE @conName nvarchar(100)
DECLARE @compressionDesc nvarchar(20)
DECLARE @indexId int
DECLARE @conType nvarchar(5)
DECLARE @indexType nvarchar(50)
DECLARE @uniqueness nvarchar(50)
DECLARE @indexName nvarchar(100)
DECLARE @suffix nvarchar(50)
DECLARE @mergedSource nvarchar(100)
DECLARE @fullSourceName sysname
DECLARE @dataType nvarchar(200)
SELECT @dataType = DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @sourceTable and COLUMN_NAME = @columnName and TABLE_SCHEMA = @sourceSchema
IF (dbo.TableExists(@sourceSchema, @sourceTable) = 0 or @dataType = @expectedType)
BEGIN
RETURN
END
IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'identityCompression'))
BEGIN
EXEC ('CREATE SCHEMA [identityCompression] AUTHORIZATION [dbo]')
END
----create suffix in the format of _YYYYMMDD for backup table
SELECT @fullSourceName=@sourceSchema+'.'+@sourceTable
SELECT @suffix=REPLACE(convert(nvarchar,GETDATE(),102),'.','')+'_'+REPLACE(LEFT(CONVERT(varchar,CONVERT(time,GETDATE(),8)),8),':','')
SELECT @objectId=object_id FROM sys.objects WHERE schema_id=schema_id(@sourceSchema) AND name=@sourceTable
SELECT @targetTable='identityCompression.['+@sourceTable+'_'+REPLACE(CONVERT(nvarchar(max),NEWID()),'-','_')+']'
SELECT @mergedSource='['+@sourceSchema+'].['+@sourceTable+']'
/* Create table Compress table (if required) Create default constraints */
-- create the new target table
DECLARE @def nvarchar(max)
DECLARE c1 CURSOR FOR
SELECT '['+c.name+']'
+ CASE
WHEN c.is_computed=0 THEN CASE WHEN c.name!=@columnName then ' ['+t.name+']' else ' ['+@expectedType+']' end
+ CASE
WHEN c.is_identity=1 THEN ' identity('+CONVERT(varchar,ident_seed(@mergedSource)) +','+CONVERT(varchar,ident_incr(@mergedSource))+')'
ELSE ''
END
+ CASE
WHEN t.name LIKE 'n%char' AND c.max_length = -1 THEN '(max)'
WHEN t.name LIKE 'n%char' THEN ' ('+CONVERT(varchar,c.max_length/2)+')'
WHEN t.name LIKE '%char%' THEN ' ('+CONVERT(varchar,c.max_length)+')'
WHEN t.name IN ('numeric','decimal') THEN '('+CONVERT(varchar,c.precision)+','+CONVERT(varchar,c.scale)+')'
ELSE ''
END
+ CASE
WHEN cc.is_persisted=1 THEN ' PERSISTED'
ELSE ''
END
+ CASE
WHEN c.is_nullable=1 THEN ' NULL'
ELSE ' NOT NULL'
END
ELSE ' as '
+ cc.definition
+ CASE
WHEN cc.is_persisted=1 THEN ' PERSISTED'
ELSE ''
END
+ CASE
WHEN cc.is_persisted=1 AND c.is_nullable=0 THEN ' NOT NULL'
ELSE ''
END
END
FROM sys.columns c
INNER JOIN sys.types t
ON t.system_type_id = c.system_type_id
AND t.user_type_id = c.user_type_id
LEFT JOIN sys.computed_columns cc
ON cc.object_id = c.object_id
AND cc.name = c.name
WHERE c.object_id = @objectId
ORDER BY c.column_id
OPEN c1
FETCH c1 INTO @def
SELECT @cmd = 'create table ' + @targetTable + '(' + @def
FETCH c1 INTO @def
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @cmd = @cmd + ',' + @def
FETCH c1 INTO @def
END
SELECT @cmd = @cmd + ')'
CLOSE c1
DEALLOCATE c1
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
-- select the compression type of the table
SELECT TOP 1 @compressionDesc = [data_compression_desc]
FROM sys.partitions
WHERE object_id=@objectId
SELECT @cmd = 'ALTER TABLE ' + @targetTable + ' rebuild partition = all with (data_compression = ' + @compressionDesc + ')'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
--duplicate defaults for the target table from the source
DECLARE c1 CURSOR FOR
SELECT con.name, con.definition, col.name
FROM sys.default_constraints con
INNER JOIN sys.columns col
ON con.parent_column_id = col.column_id
AND col.object_id = con.parent_object_id
WHERE con.parent_object_id = @objectId
AND con.type = 'D'
OPEN c1
FETCH c1 INTO @name, @definition, @colName
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @cmd = 'SP_RENAME '''+@sourceSchema+'.'+@name+''','''+@name+'_'+@suffix+''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'ALTER TABLE '+@targetTable+' ADD CONSTRAINT ['+@name+'] DEFAULT '+@definition+' FOR ['+@colName+']'
BEGIN TRY
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
END TRY
BEGIN CATCH
PRINT 'Error: ' + @cmd
END CATCH
FETCH c1 INTO @name, @definition, @colName
END
CLOSE c1
DEALLOCATE c1
--Check if source table has an identity column
DECLARE @isIdentity bit
DECLARE @colList nvarchar(max)
DECLARE @srcList nvarchar(max)
IF EXISTS (SELECT 1 FROM sys.columns WHERE object_id = @objectId AND is_identity = 1)
SELECT @isIdentity=1
ELSE
SELECT @isIdentity = 0
--Create list of columns in the source/target tables. Omit timestamp columns
DECLARE c2 CURSOR FOR
SELECT DISTINCT '['+c.name+']'
FROM sys.columns c
LEFT JOIN sys.systypes t
ON t.xtype = c.system_type_id
WHERE c.object_id=@objectId
AND t.name != 'timestamp'
AND c.is_computed=0
--AND c.is_identity=0
ORDER BY '['+c.name+']'
OPEN c2
FETCH c2 INTO @colName
SELECT @colList = @colName
SELECT @srcList = 'src.' + @colName
FETCH c2 INTO @colName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @colList=@colList+','+@colName
SELECT @srcList=@srcList+',src.'+@colName
FETCH c2 INTO @colName
END
CLOSE c2
DEALLOCATE c2
---- PRINT @colList
--Populate the target table.
select @cmd=''
if @isIdentity=1
begin
select @cmd='set identity_insert '+@targetTable+' on; '
--exec (@cmd)
end
SELECT @cmd = @cmd+'INSERT ' + @targetTable + ' WITH (tablock) (' + @colList + ') SELECT ' + @colList + ' FROM [' + @sourceSchema + '].[' + @sourceTable + '] src ;'
--PRINT @cmd
--IF @debug=0
--EXEC (@cmd)
if @isIdentity=1
begin
select @cmd=@cmd+'; set identity_insert '+@targetTable+' off'
--exec (@cmd)
end
PRINT @cmd
IF @debug=0
EXEC (@cmd)
--Replicate the primary and unique keys for the target table
DECLARE c1 CURSOR FOR
SELECT c.name, c.unique_index_id, c.type, i.type_desc
FROM sys.key_constraints c
INNER JOIN sys.indexes i
ON i.object_id = c.parent_object_id
AND i.index_id=c.unique_index_id
WHERE c.type IN ('PK','UQ')
AND c.parent_object_id=@objectId
OPEN c1
FETCH c1 INTO @conName, @indexId, @conType, @indexType
WHILE @@FETCH_STATUS=0
BEGIN
PRINT @conName +' ' + convert(varchar,@indexId)+' '+@conType
DECLARE c2 CURSOR FOR
SELECT '[' + c.name + ']'
FROM sys.index_columns ic
INNER JOIN sys.columns c
ON ic.object_id = c.object_id
AND c.column_id=ic.column_id
AND ic.is_included_column=0
WHERE ic.object_id = @objectId
AND ic.index_id = @indexId
--ORDER BY ic.index_column_id
ORDER BY ic.key_ordinal
OPEN c2
--SELECT @objectId,@indexId
FETCH c2 INTO @colName
PRINT @colName
SELECT @colList = @colName
FETCH c2 INTO @colName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @colList = @colList + ',' + @colName
FETCH c2 INTO @colName
END
CLOSE c2
DEALLOCATE c2
IF @conType='PK'
SELECT @cmd='alter table '+@targetTable+' add constraint '+@conName+' primary key '+@indexType+' ('+@colList+') with (data_compression='+@compressionDesc+')'
IF @conType='UQ'
SELECT @cmd='alter table '+@targetTable+' add constraint '+@conName+' unique '+@indexType+' ('+@colList+') with (data_compression='+@compressionDesc+')'
PRINT @cmd
IF @debug=0
EXEC (@cmd)
FETCH c1 INTO @conName,@indexId,@conType,@indexType
END
CLOSE c1
DEALLOCATE c1
--Create check constraints
DECLARE c1 CURSOR FOR
SELECT [name],[definition]
FROM sys.check_constraints
WHERE parent_object_id = @objectId
OPEN c1
FETCH c1 INTO @conName,@definition
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @cmd = 'SP_RENAME '''+@sourceSchema+'.'+@conName+''','''+@conName+'_'+@suffix+''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'ALTER TABLE ' + @targetTable + ' ADD CONSTRAINT ' + @conName + ' check ' + @definition
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @conName, @definition
END
CLOSE c1
DEALLOCATE c1
----Create indexes
DECLARE @incList nvarchar(max)
DECLARE @incName nvarchar(100)
DECLARE @ascDesc nvarchar(10)
DECLARE c1 CURSOR FOR
SELECT name, index_id, type_desc,
CASE
WHEN is_unique=1 THEN 'UNIQUE'
ELSE ''
END
FROM sys.indexes i
WHERE i.object_id = @ObjectId
AND NOT EXISTS
(SELECT 1
FROM sys.key_constraints kc
WHERE kc.parent_object_id = i.object_id
AND i.index_id = kc.unique_index_id)
OPEN c1
FETCH c1 INTO @indexName, @indexId, @indexType, @uniqueness
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE c2 CURSOR FOR
SELECT '[' + c.name + ']' ,
CASE
WHEN ic.is_descending_key = 1 THEN 'DESC'
ELSE 'ASC'
END
FROM sys.index_columns ic
INNER JOIN sys.columns c
ON ic.object_id = c.object_id
AND c.column_id = ic.column_id
AND ic.is_included_column = 0
WHERE ic.object_id = @objectId
AND ic.index_id = @indexId
--ORDER BY ic.index_column_id
ORDER BY ic.key_ordinal
OPEN c2
FETCH c2 INTO @colName,@ascDesc
SELECT @colList = @colName + ' ' + @ascDesc
FETCH c2 INTO @colName, @ascDesc
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @colList = @colList + ',' + @colName + ' ' + @ascDesc
FETCH c2 INTO @colName, @ascDesc
END
CLOSE c2
DEALLOCATE c2
SELECT @colName = ''
DECLARE c2 CURSOR FOR
SELECT '[' + c.name + ']'
FROM sys.index_columns ic
INNER JOIN sys.columns c
ON ic.object_id = c.object_id
AND c.column_id = ic.column_id
AND ic.is_included_column = 1
WHERE ic.object_id = @objectId
AND ic.index_id = @indexId
--ORDER BY ic.index_column_id
ORDER BY ic.key_ordinal
OPEN c2
FETCH c2 INTO @colName
SELECT @incList = @colName
FETCH c2 INTO @colName
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @incList = @incList + ',' + @colName
FETCH c2 INTO @colName
END
CLOSE c2
DEALLOCATE c2
PRINT @indexName +' : ' + @colList + ' : '+@inclist
SELECT @cmd = 'CREATE ' + @uniqueness + ' ' + @indexType+
+' INDEX [' + @indexName + '] ON ' + @targetTable + ' (' + @colList + ')'
+ CASE
WHEN @incList = '' THEN ''
ELSE ' include (' + @incList + ')'
END
+' WITH (data_compression=' + @compressionDesc + ')'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @indexName, @indexId, @indexType, @uniqueness
END
CLOSE c1
DEALLOCATE c1
----Create foreign keys
DECLARE @refColName nvarchar(max)
DECLARE @refColList nvarchar(max)
DECLARE @refTable nvarchar(100)
DECLARE @onDelete nvarchar(50)
DECLARE @onUpdate nvarchar(50)
DECLARE c1 CURSOR FOR
SELECT name, delete_referential_action_desc, update_referential_action_desc
FROM sys.foreign_keys
WHERE parent_object_id = @objectId
OPEN c1
FETCH c1 INTO @conName, @onDelete, @onUpdate
WHILE @@fetch_status = 0
BEGIN
DECLARE c2 CURSOR FOR
SELECT pc.name, rc.name, '[' + schema_name(t.schema_id) + '].[' + t.name + ']'
FROM sys.foreign_key_columns fkc
INNER JOIN sys.foreign_keys fk
ON fkc.constraint_object_id = fk.object_id
INNER JOIN sys.columns pc
ON pc.column_id = fkc.parent_column_id
AND pc.object_id = @objectId
INNER JOIN sys.columns rc
ON rc.column_id = fkc.referenced_column_id
AND rc.object_id = fkc.referenced_object_id
INNER JOIN sys.tables t
ON t.object_id = fkc.referenced_object_id
WHERE fk.parent_object_id=@objectId
AND fk.name = @conName
ORDER BY fkc.constraint_column_id
OPEN c2
FETCH c2 INTO @colName, @refColName, @refTable
SELECT @colList = @colName
SELECT @refColList = @refColName
FETCH c2 INTO @colName, @refColName, @refTable
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @colList = ',' + @colName
SELECT @refColList = ',' + @refColName
FETCH c2 INTO @colName,@refColName,@refTable
END
CLOSE c2
DEALLOCATE c2
SELECT @cmd = 'ALTER TABLE ' + @targetTable + ' ADD CONSTRAINT [' + @conName + '] FOREIGN KEY (' + @colList + ') REFERENCES ' + @refTable + '(' + @refColList + ') '
+ CASE
WHEN @onDelete != 'NO_ACTION' THEN 'on delete ' + @onDelete
ELSE ''
END
+ CASE
WHEN @onUpdate != 'NO_ACTION' THEN ' on update ' + @onUpdate
ELSE ''
END
PRINT @cmd
IF @debug=0
EXEC (@cmd)
FETCH c1 INTO @conName, @onDelete, @onUpdate
END
CLOSE c1
DEALLOCATE c1
-- Rename the primary key and drop foreign keys in the source table
DECLARE c1 CURSOR FOR
SELECT name, type
FROM sys.key_constraints
WHERE parent_object_id = @objectId
UNION ALL
SELECT name,type
FROM sys.foreign_keys
WHERE parent_object_id = @objectId
OPEN c1
FETCH c1 INTO @conName, @conType
WHILE @@FETCH_STATUS = 0
BEGIN
IF @conType = 'F'
SELECT @cmd = 'ALTER TABLE [' + @sourceSchema + '].[' + @sourceTable + '] DROP CONSTRAINT [' + @conName + ']'
ELSE
SELECT @cmd = 'sp_rename ''' + @sourceSchema + '.' + @sourceTable + '.' + @conName + ''',' + '''' + @conName + '_' + @suffix + ''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @conName,@conType
END
CLOSE c1
DEALLOCATE c1
-- Turn on change tracking if required
IF EXISTS (SELECT 1 FROM sys.change_tracking_tables WHERE OBJECT_ID=@objectId)
BEGIN
SELECT @cmd='ALTER TABLE '+@targetTable+' enable Change_tracking'
exec (@cmd)
END
-- Replace the source table with the target table. Move the source table to the bak schema and append @suffix
SELECT @cmd = 'sp_rename ''' + @sourceSchema + '.' + @sourceTable + '''' + ',''' + @sourceTable + '_' + @suffix + ''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'sp_rename ''' + REPLACE(REPLACE(@targetTable,'[',''),']','') + ''',''' + @sourceTable + ''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'ALTER SCHEMA [' + @sourceSchema + '] TRANSFER [identityCompression].[' + @sourceTable + ']'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'ALTER SCHEMA [BAK] TRANSFER [' + @sourceSchema + '].[' + @sourceTable + '_' + @suffix + ']'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
-- Create triggers here
DECLARE @triggerDef varchar(MAX) = ''
DECLARE @triggerName varchar(MAX) = ''
DECLARE @triggerDisabled bit = 0
DECLARE @triggerSql varchar(MAX) = ''
SELECT m.definition, obj.name, t.is_disabled
into #tmpTriggers
FROM sys.sql_modules m
INNER JOIN sys.objects obj on obj.object_id = m.object_id
INNER JOIN sys.triggers t on t.object_id = m.object_id
WHERE obj.type = 'TR' and obj.parent_object_id = OBJECT_ID('[BAK].[' + @sourceTable + '_' + @suffix + ']')
DECLARE c1 CURSOR FOR
SELECT definition, name, is_disabled
FROM #tmpTriggers
OPEN c1
FETCH c1 INTO @triggerDef, @triggerName, @triggerDisabled
WHILE @@FETCH_STATUS = 0
BEGIN
--There is no renaming trigger so a drop and create is necessary to put the original trigger on the bak table
SET @triggerSql = 'DROP TRIGGER IF EXISTS [BAK].[' + @triggerName + ']'
PRINT @triggerSql
IF @debug = 0
EXEC (@triggerSql)
--create the trigger replacing the orig table name with bak name
SET @triggerSql = REPLACE(@triggerDef, @triggerName, @triggerName + '_' + @suffix)
SET @triggerSql = REPLACE(@triggerSql, '[' + @sourceSchema + ']','[bak]')
SET @triggerSql = REPLACE(@triggerSql, '[' + @sourceTable, '[' + @sourceTable + '_' + @suffix)
SET @triggerSql = REPLACE(@triggerSql, @sourceSchema + '.' + @sourceTable, 'bak.' + @sourcetable + '_' + @suffix)
PRINT @triggerSql
IF @debug = 0
EXEC (@triggerSql)
--create trigger on new table
PRINT @triggerDef
IF @debug = 0
EXEC (@triggerDef)
--disable trigger if it was previously disabled
IF (@triggerDisabled <> 0)
BEGIN
SET @triggerSql = 'DISABLE TRIGGER [' + @sourceSchema + '].[' + @triggerName + '] on [' + @sourceSchema + '].[' + @sourceTable + ']'
PRINT @triggerSql
IF @debug = 0
EXEC (@triggerSql)
END
FETCH c1 INTO @triggerDef, @triggerName, @triggerDisabled
END
CLOSE c1
DEALLOCATE c1
--Update replication table if required
IF EXISTS (SELECT 1 FROM dbo.ReplicationTable WHERE TableName=@fullSourceName)
BEGIN
UPDATE dbo.ReplicationTable set LastRefreshChangeTrackingVersion = null
WHERE TableName = @fullSourceName
END
GO
---------------------------------------------
-- dbo.CopyData
CREATE PROCEDURE [dbo].[CopyData] (@sourceSchema nvarchar(100), @sourceTable nvarchar(200), @whereClause nvarchar(2000), @debug bit=0, @identityCompression bit=0)
AS
SET NOCOUNT ON
DECLARE @cmd nvarchar(max)
DECLARE @targetTable nvarchar(200)
DECLARE @objectId int
DECLARE @name nvarchar(100)
DECLARE @definition nvarchar(4000)
DECLARE @colName nvarchar(100)
DECLARE @conName nvarchar(100)
DECLARE @compressionDesc nvarchar(20)
DECLARE @indexId int
DECLARE @conType nvarchar(5)
DECLARE @indexType nvarchar(50)
DECLARE @uniqueness nvarchar(50)
DECLARE @indexName nvarchar(100)
DECLARE @suffix nvarchar(50)
DECLARE @mergedSource nvarchar(100)
----create suffix in the format of _YYYYMMDD for backup table
SELECT @suffix=REPLACE(convert(nvarchar,GETDATE(),102),'.','')+'_'+REPLACE(LEFT(CONVERT(varchar,CONVERT(time,GETDATE(),8)),8),':','')
SELECT @objectId=object_id FROM sys.objects WHERE schema_id=schema_id(@sourceSchema) AND name=@sourceTable
SELECT @targetTable='data.['+@sourceTable+'_'+REPLACE(CONVERT(nvarchar(max),NEWID()),'-','_')+']'
SELECT @mergedSource='['+@sourceSchema+'].['+@sourceTable+']'
/* Create table Compress table (if required) Create default constraints */
-- create the new target table
IF EXISTS (SELECT 1 FROM sys.columns WHERE object_id=@objectId AND is_computed=1)
BEGIN
DECLARE @def nvarchar(max)
DECLARE c1 CURSOR FOR
SELECT '['+c.name+']'
+ CASE
WHEN c.is_computed=0 THEN ' ['+t.name+']'
+ CASE
WHEN c.is_identity=1 THEN ' identity('+CONVERT(varchar,ident_seed(@mergedSource)) +','+CONVERT(varchar,ident_incr(@mergedSource))+')'
ELSE ''
END
+ CASE
WHEN t.name LIKE 'n%char' AND c.max_length = -1 THEN '(max)'
WHEN t.name LIKE 'n%char' THEN ' ('+CONVERT(varchar,c.max_length/2)+')'
WHEN t.name LIKE '%char%' THEN ' ('+CONVERT(varchar,c.max_length)+')'
WHEN t.name IN ('numeric','decimal') THEN '('+CONVERT(varchar,c.precision)+','+CONVERT(varchar,c.scale)+')'
ELSE ''
END
+ CASE
WHEN c.is_nullable=1 THEN ' NULL'
ELSE ' NOT NULL'
END
ELSE ' as '
+ cc.definition
END
FROM sys.columns c
INNER JOIN sys.types t
ON t.system_type_id = c.system_type_id
AND t.user_type_id = c.user_type_id
LEFT JOIN sys.computed_columns cc
ON cc.object_id = c.object_id
AND cc.name = c.name
WHERE c.object_id = @objectId
ORDER BY c.column_id
OPEN c1
FETCH c1 INTO @def
SELECT @cmd = 'create table ' + @targetTable + '(' + @def
FETCH c1 INTO @def
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @cmd = @cmd + ',' + @def
FETCH c1 INTO @def
END
SELECT @cmd = @cmd + ')'
CLOSE c1
DEALLOCATE c1
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
END
ELSE
BEGIN
SELECT @cmd='SELECT * INTO '+@targetTable+' FROM ['+@sourceSchema+'].['+@sourceTable +'] WHERE 1=2'
PRINT @cmd
IF @debug=0
EXEC (@cmd)
END
-- select the compression type of the table
SELECT TOP 1 @compressionDesc = [data_compression_desc]
FROM sys.partitions
WHERE object_id=@objectId
SELECT @cmd = 'ALTER TABLE ' + @targetTable + ' rebuild partition = all with (data_compression = ' + @compressionDesc + ')'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
--duplicate defaults for the target table from the source
DECLARE c1 CURSOR FOR
SELECT con.name, con.definition, col.name
FROM sys.default_constraints con
INNER JOIN sys.columns col
ON con.parent_column_id = col.column_id
AND col.object_id = con.parent_object_id
WHERE con.parent_object_id = @objectId
AND con.type = 'D'
OPEN c1
FETCH c1 INTO @name, @definition, @colName
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @cmd = 'ALTER TABLE '+@targetTable+' ADD DEFAULT '+@definition+' FOR ['+@colName+']'
BEGIN TRY
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
END TRY
BEGIN CATCH
PRINT 'Error: ' + @cmd
END CATCH
FETCH c1 INTO @name, @definition, @colName
END
CLOSE c1
DEALLOCATE c1
--Check if source table has an identity column
DECLARE @isIdentity bit
DECLARE @colList nvarchar(max)
DECLARE @srcList nvarchar(max)
IF EXISTS (SELECT 1 FROM sys.columns WHERE object_id = @objectId AND is_identity = 1)
SELECT @isIdentity=1
ELSE
SELECT @isIdentity = 0
--Create list of columns in the source/target tables. Omit timestamp columns and identity column if @identityCompression=1
DECLARE c2 CURSOR FOR
SELECT DISTINCT '['+c.name+']'
FROM sys.columns c
LEFT JOIN sys.systypes t
ON t.xtype = c.system_type_id
WHERE c.object_id=@objectId
AND t.name != 'timestamp'
AND c.is_computed=0
AND (c.is_identity=0 or @identityCompression=0)
ORDER BY '['+c.name+']'
OPEN c2
FETCH c2 INTO @colName
SELECT @colList = @colName
SELECT @srcList = 'src.' + @colName
FETCH c2 INTO @colName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @colList=@colList+','+@colName
SELECT @srcList=@srcList+',src.'+@colName
FETCH c2 INTO @colName
END
CLOSE c2
DEALLOCATE c2
---- PRINT @colList
--Populate the target table.
IF @identityCompression = 0
BEGIN
SELECT @cmd = CASE
WHEN @isIdentity = 1 THEN 'SET identity_insert ' + @targetTable + ' ON;'
ELSE ''
END
SELECT @cmd = @cmd + 'INSERT ' + @targetTable + ' WITH (tablock) (' + @colList + ') SELECT ' + @srcList + ' FROM [' + @sourceSchema + '].[' + @sourceTable + '] src ' + @whereClause + ';'
SELECT @cmd = @cmd
+ CASE
WHEN @isIdentity = 1 THEN 'SET identity_insert ' + @targetTable + ' OFF;'
ELSE ''
END
END
ELSE
BEGIN
SELECT @cmd = 'INSERT ' + @targetTable + ' WITH (tablock) (' + @colList + ') SELECT ' + @colList + ' FROM [' + @sourceSchema + '].[' + @sourceTable + '] src ' + @whereClause + ';'
END
PRINT @cmd
IF @debug=0
EXEC (@cmd)
--Replicate the primary and unique keys for the target table
DECLARE c1 CURSOR FOR
SELECT c.name, c.unique_index_id, c.type, i.type_desc
FROM sys.key_constraints c
INNER JOIN sys.indexes i
ON i.object_id = c.parent_object_id
AND i.index_id=c.unique_index_id
WHERE c.type IN ('PK','UQ')
AND c.parent_object_id=@objectId
OPEN c1
FETCH c1 INTO @conName, @indexId, @conType, @indexType
WHILE @@FETCH_STATUS=0
BEGIN
--PRINT @conName +' ' + convert(varchar,@indexId)+' '+@conType
DECLARE c2 CURSOR FOR
SELECT '[' + c.name + ']'
FROM sys.index_columns ic
INNER JOIN sys.columns c
ON ic.object_id = c.object_id
AND c.column_id=ic.column_id
AND ic.is_included_column=0
WHERE ic.object_id = @objectId
AND ic.index_id = @indexId
ORDER BY ic.index_column_id
OPEN c2
--SELECT @objectId,@indexId
FETCH c2 INTO @colName
--PRINT @colName
SELECT @colList = @colName
FETCH c2 INTO @colName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @colList = @colList + ',' + @colName
FETCH c2 INTO @colName
END
CLOSE c2
DEALLOCATE c2
IF @conType='PK'
SELECT @cmd='alter table '+@targetTable+' add constraint '+@conName+' primary key '+@indexType+' ('+@colList+') with (data_compression='+@compressionDesc+')'
IF @conType='UQ'
SELECT @cmd='alter table '+@targetTable+' add constraint '+@conName+' unique '+@indexType+' ('+@colList+') with (data_compression='+@compressionDesc+')'
PRINT @cmd
IF @debug=0
EXEC (@cmd)
FETCH c1 INTO @conName,@indexId,@conType,@indexType
END
CLOSE c1
DEALLOCATE c1
--Create check constraints
DECLARE c1 CURSOR FOR
SELECT [name],[definition]
FROM sys.check_constraints
WHERE parent_object_id = @objectId
OPEN c1
FETCH c1 INTO @conName,@definition
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @cmd = 'ALTER TABLE ' + @targetTable + ' ADD CONSTRAINT ' + @conName + ' check ' + @definition
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @conName, @definition
END
CLOSE c1
DEALLOCATE c1
----Create indexes
DECLARE @incList nvarchar(max)
DECLARE @incName nvarchar(100)
DECLARE @ascDesc nvarchar(10)
DECLARE c1 CURSOR FOR
SELECT name, index_id, type_desc,
CASE
WHEN is_unique=1 THEN 'UNIQUE'
ELSE 'NONUNIQUE'
END
FROM sys.indexes i
WHERE i.object_id = @ObjectId
AND NOT EXISTS
(SELECT 1
FROM sys.key_constraints kc
WHERE kc.parent_object_id = i.object_id
AND i.index_id = kc.unique_index_id)
OPEN c1
FETCH c1 INTO @indexName, @indexId, @indexType, @uniqueness
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE c2 CURSOR FOR
SELECT '[' + c.name + ']' ,
CASE
WHEN ic.is_descending_key = 1 THEN 'DESC'
ELSE 'ASC'
END
FROM sys.index_columns ic
INNER JOIN sys.columns c
ON ic.object_id = c.object_id
AND c.column_id = ic.column_id
AND ic.is_included_column = 0
WHERE ic.object_id = @objectId
AND ic.index_id = @indexId
ORDER BY ic.index_column_id
OPEN c2
FETCH c2 INTO @colName,@ascDesc
SELECT @colList = @colName + ' ' + @ascDesc
FETCH c2 INTO @colName, @ascDesc
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @colList = @colList + ',' + @colName + ' ' + @ascDesc
FETCH c2 INTO @colName, @ascDesc
END
CLOSE c2
DEALLOCATE c2
SELECT @colName = ''
DECLARE c2 CURSOR FOR
SELECT '[' + c.name + ']'
FROM sys.index_columns ic
INNER JOIN sys.columns c
ON ic.object_id = c.object_id
AND c.column_id = ic.column_id
AND ic.is_included_column = 1
WHERE ic.object_id = @objectId
AND ic.index_id = @indexId
ORDER BY ic.index_column_id
OPEN c2
FETCH c2 INTO @colName
SELECT @incList = @colName
FETCH c2 INTO @colName
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @incList = @incList + ',' + @colName
FETCH c2 INTO @colName
END
CLOSE c2
DEALLOCATE c2
--PRINT @indexName +' : ' + @colList + ' : '+@inclist
SELECT @cmd = 'CREATE ' + @indexType+
+' INDEX [' + @indexName + '] ON ' + @targetTable + ' (' + @colList + ')'
+ CASE
WHEN @incList = '' THEN ''
ELSE ' include (' + @incList + ')'
END
+' WITH (data_compression=' + @compressionDesc + ')'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @indexName, @indexId, @indexType, @uniqueness
END
CLOSE c1
DEALLOCATE c1
----Create foreign keys
DECLARE @refColName nvarchar(max)
DECLARE @refColList nvarchar(max)
DECLARE @refTable nvarchar(100)
DECLARE @onDelete nvarchar(50)
DECLARE @onUpdate nvarchar(50)
DECLARE c1 CURSOR FOR
SELECT name, delete_referential_action_desc, update_referential_action_desc
FROM sys.foreign_keys
WHERE parent_object_id = @objectId
OPEN c1
FETCH c1 INTO @conName, @onDelete, @onUpdate
WHILE @@fetch_status = 0
BEGIN
DECLARE c2 CURSOR FOR
SELECT pc.name, rc.name, '[' + schema_name(t.schema_id) + '].[' + t.name + ']'
FROM sys.foreign_key_columns fkc
INNER JOIN sys.foreign_keys fk
ON fkc.constraint_object_id = fk.object_id
INNER JOIN sys.columns pc
ON pc.column_id = fkc.parent_column_id
AND pc.object_id = @objectId
INNER JOIN sys.columns rc
ON rc.column_id = fkc.referenced_column_id
AND rc.object_id = fkc.referenced_object_id
INNER JOIN sys.tables t
ON t.object_id = fkc.referenced_object_id
WHERE fk.parent_object_id=@objectId
AND fk.name = @conName
ORDER BY fkc.constraint_column_id
OPEN c2
FETCH c2 INTO @colName, @refColName, @refTable
SELECT @colList = @colName
SELECT @refColList = @refColName
FETCH c2 INTO @colName, @refColName, @refTable
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @colList = ',' + @colName
SELECT @refColList = ',' + @refColName
FETCH c2 INTO @colName,@refColName,@refTable
END
CLOSE c2
DEALLOCATE c2
SELECT @cmd = 'ALTER TABLE ' + @targetTable + ' ADD CONSTRAINT [' + @conName + '] FOREIGN KEY (' + @colList + ') REFERENCES ' + @refTable + '(' + @refColList + ') '
+ CASE
WHEN @onDelete != 'NO_ACTION' THEN 'on delete ' + @onDelete
ELSE ''
END
+ CASE
WHEN @onUpdate != 'NO_ACTION' THEN 'on update ' + @onUpdate
ELSE ''
END
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @conName, @onDelete, @onUpdate
END
CLOSE c1
DEALLOCATE c1
-- Rename the primary key and drop foreign keys in the source table
DECLARE c1 CURSOR FOR
SELECT name, type
FROM sys.key_constraints
WHERE parent_object_id = @objectId
UNION ALL
SELECT name,type
FROM sys.foreign_keys
WHERE parent_object_id = @objectId
OPEN c1
FETCH c1 INTO @conName, @conType
WHILE @@FETCH_STATUS = 0
BEGIN
IF @conType = 'F'
SELECT @cmd = 'ALTER TABLE [' + @sourceSchema + '].[' + @sourceTable + '] DROP CONSTRAINT [' + @conName + ']'
ELSE
SELECT @cmd = 'sp_rename ''' + @sourceSchema + '.' + @sourceTable + '.' + @conName + ''',' + '''' + @conName + '_' + @suffix + ''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @conName,@conType
END
CLOSE c1
DEALLOCATE c1
-- Create CopyDataBAK schema
IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'CopyDataBAK')
BEGIN
SELECT @cmd = 'CREATE SCHEMA CopyDataBAK'
PRINT @cmd
IF @debug = 0
EXEC ('CREATE SCHEMA CopyDataBAK')
END
-- Replace the source table with the target table. Move the source table to the bak schema and append @suffix
SELECT @cmd = 'sp_rename ''' + @sourceSchema + '.' + @sourceTable + '''' + ',''' + @sourceTable + '_' + @suffix + ''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'sp_rename ''' + REPLACE(REPLACE(@targetTable,'[',''),']','') + ''',''' + @sourceTable + ''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'ALTER SCHEMA [' + @sourceSchema + '] TRANSFER [data].[' + @sourceTable + ']'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'ALTER SCHEMA [CopyDataBAK] TRANSFER [' + @sourceSchema + '].[' + @sourceTable + '_' + @suffix + ']'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
GO
---------------------------------------------
-- dbo.GetScoreDataTableColumnValidationResults
CREATE PROCEDURE dbo.GetScoreDataTableColumnValidationResults
(
@SchemaList VARCHAR(MAX),-- = 'clientdss,dss'
@IgnoreColumnList VARCHAR(MAX)-- = 'TransactionID,RowID,Version'
)
AS
BEGIN
SELECT s.name AS [Schema]
,t.name AS [Table]
,c.COLUMN_NAME AS [Column]
,CONVERT(BIT, CASE WHEN c.IS_NULLABLE = 'YES' THEN 1 ELSE 0 END) AS Nullable
,CONVERT(BIT, CASE WHEN c.COLUMN_DEFAULT IS NULL THEN 1 ELSE 0 END) AS HasDefault
FROM sys.tables t
INNER JOIN sys.schemas s ON s.schema_id = t.schema_id
INNER JOIN INFORMATION_SCHEMA.COLUMNS c ON c.TABLE_NAME = t.name AND c.TABLE_SCHEMA = s.name
INNER JOIN [dbo].[ConvertCSValuesToTable](@SchemaList, ',') schemasToCheck ON schemasToCheck.val = s.name
INNER JOIN dbo.ScoreDataTable dt ON dt.SQLObjectName = t.name AND dt.SQLSchemaName = s.name
LEFT JOIN [dbo].[ConvertCSValuesToTable](@IgnoreColumnList, ',') ignore ON ignore.val = c.COLUMN_NAME
WHERE (c.IS_NULLABLE = 'YES' OR c.COLUMN_DEFAULT IS NULL)
AND ignore.pos IS NULL
END
GO
---------------------------------------------
-- dbo.GetScoreViewValidationResults
CREATE PROCEDURE dbo.GetScoreViewValidationResults
(
@SchemaList VARCHAR(MAX)-- = 'clientdss,dss'
)
AS
BEGIN
DECLARE @checkSchema NVARCHAR(500)
DECLARE @checkObject NVARCHAR(500)
DECLARE @checkColumn NVARCHAR(500)
DECLARE @checkSQL NVARCHAR(500)
DECLARE @DimensionName NVARCHAR(500)
DECLARE @devnull INT
DECLARE @ErrorLog TABLE (
Dimension NVARCHAR(500)
,Error NVARCHAR(500)
,[Table] NVARCHAR(500)
,[Column] NVARCHAR(500)
,[Schema] VARCHAR(MAX)
)
DECLARE c_schemacheck CURSOR FAST_FORWARD FOR
SELECT
sd.FriendlyName
,sd.SQLSchemaName
,sd.SQLObjectName
,sa.SQLColumnName
FROM
ScoreDimension sd
INNER JOIN ScoreDimensionGroup sdg ON sd.DimensionGUID=sdg.DimensionGUID
INNER JOIN ScoreAttribute sa ON sdg.DimensionGroupGUID=sa.DimensionGroupGUID
INNER JOIN [dbo].[ConvertCSValuesToTable](@SchemaList, ',') schemasToCheck ON schemasToCheck.val = sd.SQLSchemaName
ORDER BY
sd.FriendlyName
,sd.SQLSchemaName
,sd.SQLObjectName
,sa.SQLColumnName
;
OPEN c_schemacheck;
FETCH NEXT FROM c_schemacheck INTO @DimensionName, @checkSchema, @checkObject, @checkColumn
WHILE @@FETCH_STATUS=0
BEGIN
--SET @checkSQL='DECLARE @devnull INT; SELECT TOP 1 @devnull=COUNT([' + @checkColumn + ']) FROM [' + @checkSchema + '].[' + @checkObject + '] OPTION(FAST 1)'
SET @checkSQL='DECLARE @devnull INT; SELECT TOP 0 @devnull=COUNT([' + @checkColumn + ']) FROM [' + @checkSchema + '].[' + @checkObject + '] (READUNCOMMITTED)'
--PRINT @checkSQL
BEGIN TRY
exec sp_executesql @checkSQL
END TRY
BEGIN CATCH
INSERT INTO @ErrorLog (Dimension,Error,[Table],[Column],[Schema]) VALUES (@DimensionName,ERROR_MESSAGE(),@checkObject,@checkColumn, @checkSchema)
--PRINT ERROR_MESSAGE() + ' SELECT [' + @checkColumn + '] FROM [' + @checkSchema + '].[' + @checkObject + ']'
END CATCH
FETCH NEXT FROM c_schemacheck INTO @DimensionName, @checkSchema, @checkObject, @checkColumn
END
CLOSE c_schemacheck;
DEALLOCATE c_schemacheck;
SELECT
Dimension
,Error
,[Table]
,[Column]
,[Schema]
FROM @ErrorLog
END
GO
---------------------------------------------
-- dbo.IdentityCompression
CREATE PROCEDURE [dbo].[IdentityCompression] (@sourceSchema nvarchar(100), @sourceTable nvarchar(200), @debug bit=0)
AS
SET NOCOUNT ON
declare @checkCmd nvarchar(1000)
declare @resultsTable table (TableIsVetted int)
select @checkCmd='if exists (select 1 from ['+setting+'].SQLAdministration.dbo.IdentityCompressionVetted where SchemaName='''+
@sourceSchema + ''' and TableName='''+@sourceTable+''') select 1 else select 0' from dbsetting where name='SMC_PRIMARY_SERVER'
begin try
insert @resultsTable exec (@checkCmd)
end try
begin catch
print 'Could not locate SQLAdministration.dbo.IdentityCompressionVetted on SMC_PRIMARY_SERVER'
end catch
if not exists (select 1 from @resultsTable where TableIsVetted=1)
begin
PRINT 'Table '+@sourceSchema+'.'+@sourceTable+ ' is not vetted for use with this stored procedure.'
RETURN 0
end
/*
IF NOT EXISTS (SELECT 1 FROM IdentityCompressionVetted WHERE SchemaName=@sourceSchema and TableName=@sourceTable)
BEGIN
PRINT 'Table '+@sourceSchema+'.'+@sourceTable+ ' is not vetted for use with this stored procedure.'
RETURN 0
END
*/
DECLARE @runTime datetime=getdate()
DECLARE @cmd nvarchar(max)
DECLARE @targetTable nvarchar(200)
DECLARE @objectId int
DECLARE @name nvarchar(100)
DECLARE @definition nvarchar(4000)
DECLARE @colName nvarchar(100)
DECLARE @conName nvarchar(100)
DECLARE @compressionDesc nvarchar(20)
DECLARE @indexId int
DECLARE @conType nvarchar(5)
DECLARE @indexType nvarchar(50)
DECLARE @uniqueness nvarchar(50)
DECLARE @indexName nvarchar(100)
DECLARE @suffix nvarchar(50)
DECLARE @mergedSource nvarchar(100)
DECLARE @fullSourceName sysname
----create suffix in the format of _YYYYMMDD for backup table
SELECT @fullSourceName=@sourceSchema+'.'+@sourceTable
SELECT @suffix=REPLACE(convert(nvarchar,GETDATE(),102),'.','')+'_'+REPLACE(LEFT(CONVERT(varchar,CONVERT(time,GETDATE(),8)),8),':','')
SELECT @objectId=object_id FROM sys.objects WHERE schema_id=schema_id(@sourceSchema) AND name=@sourceTable
SELECT @targetTable='data.['+@sourceTable+'_'+REPLACE(CONVERT(nvarchar(max),NEWID()),'-','_')+']'
SELECT @mergedSource='['+@sourceSchema+'].['+@sourceTable+']'
/* Create table Compress table (if required) Create default constraints */
-- create the new target table
INSERT IdentityCompressionLog select @runTime,@sourceSchema,@sourceTable,1
IF EXISTS (SELECT 1 FROM sys.columns WHERE object_id=@objectId AND is_computed=1)
BEGIN
DECLARE @def nvarchar(max)
DECLARE c1 CURSOR FOR
SELECT '['+c.name+']'
+ CASE
WHEN c.is_computed=0 THEN ' ['+t.name+']'
+ CASE
WHEN c.is_identity=1 THEN ' identity('+CONVERT(varchar,ident_seed(@mergedSource)) +','+CONVERT(varchar,ident_incr(@mergedSource))+')'
ELSE ''
END
+ CASE
WHEN t.name LIKE 'n%char' AND c.max_length = -1 THEN '(max)'
WHEN t.name LIKE 'n%char' THEN ' ('+CONVERT(varchar,c.max_length/2)+')'
WHEN t.name LIKE '%char%' THEN ' ('+CONVERT(varchar,c.max_length)+')'
WHEN t.name IN ('numeric','decimal') THEN '('+CONVERT(varchar,c.precision)+','+CONVERT(varchar,c.scale)+')'
ELSE ''
END
+ CASE
WHEN c.is_nullable=1 THEN ' NULL'
ELSE ' NOT NULL'
END
ELSE ' as '
+ cc.definition
END
FROM sys.columns c
INNER JOIN sys.types t
ON t.system_type_id = c.system_type_id
AND t.user_type_id = c.user_type_id
LEFT JOIN sys.computed_columns cc
ON cc.object_id = c.object_id
AND cc.name = c.name
WHERE c.object_id = @objectId
ORDER BY c.column_id
OPEN c1
FETCH c1 INTO @def
SELECT @cmd = 'create table ' + @targetTable + '(' + @def
FETCH c1 INTO @def
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @cmd = @cmd + ',' + @def
FETCH c1 INTO @def
END
SELECT @cmd = @cmd + ')'
CLOSE c1
DEALLOCATE c1
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
END
ELSE
BEGIN
SELECT @cmd='SELECT * INTO '+@targetTable+' FROM ['+@sourceSchema+'].['+@sourceTable +'] WHERE 1=2'
PRINT @cmd
IF @debug=0
EXEC (@cmd)
END
-- select the compression type of the table
UPDATE IdentityCompressionLog SET status=2 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
SELECT TOP 1 @compressionDesc = [data_compression_desc]
FROM sys.partitions
WHERE object_id=@objectId
SELECT @cmd = 'ALTER TABLE ' + @targetTable + ' rebuild partition = all with (data_compression = ' + @compressionDesc + ')'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
--duplicate defaults for the target table from the source
UPDATE IdentityCompressionLog SET status=3 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
DECLARE c1 CURSOR FOR
SELECT con.name, con.definition, col.name
FROM sys.default_constraints con
INNER JOIN sys.columns col
ON con.parent_column_id = col.column_id
AND col.object_id = con.parent_object_id
WHERE con.parent_object_id = @objectId
AND con.type = 'D'
OPEN c1
FETCH c1 INTO @name, @definition, @colName
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @cmd = 'SP_RENAME '''+@sourceSchema+'.'+@name+''','''+@name+'_'+@suffix+''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'ALTER TABLE '+@targetTable+' ADD CONSTRAINT ['+@name+'] DEFAULT '+@definition+' FOR ['+@colName+']'
BEGIN TRY
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
END TRY
BEGIN CATCH
PRINT 'Error: ' + @cmd
END CATCH
FETCH c1 INTO @name, @definition, @colName
END
CLOSE c1
DEALLOCATE c1
--Check if source table has an identity column
UPDATE IdentityCompressionLog SET status=4 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
DECLARE @isIdentity bit
DECLARE @colList nvarchar(max)
DECLARE @srcList nvarchar(max)
IF EXISTS (SELECT 1 FROM sys.columns WHERE object_id = @objectId AND is_identity = 1)
SELECT @isIdentity=1
ELSE
SELECT @isIdentity = 0
--Create list of columns in the source/target tables. Omit timestamp columns and identity column
UPDATE IdentityCompressionLog SET status=5 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
DECLARE c2 CURSOR FOR
SELECT DISTINCT '['+c.name+']'
FROM sys.columns c
LEFT JOIN sys.systypes t
ON t.xtype = c.system_type_id
WHERE c.object_id=@objectId
AND t.name != 'timestamp'
AND c.is_computed=0
AND c.is_identity=0
ORDER BY '['+c.name+']'
OPEN c2
FETCH c2 INTO @colName
SELECT @colList = @colName
SELECT @srcList = 'src.' + @colName
FETCH c2 INTO @colName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @colList=@colList+','+@colName
SELECT @srcList=@srcList+',src.'+@colName
FETCH c2 INTO @colName
END
CLOSE c2
DEALLOCATE c2
---- PRINT @colList
--Populate the target table.
UPDATE IdentityCompressionLog SET status=6 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
SELECT @cmd = 'INSERT ' + @targetTable + ' WITH (tablock) (' + @colList + ') SELECT ' + @colList + ' FROM [' + @sourceSchema + '].[' + @sourceTable + '] src ;'
PRINT @cmd
IF @debug=0
EXEC (@cmd)
--Replicate the primary and unique keys for the target table
UPDATE IdentityCompressionLog SET status=7 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
DECLARE c1 CURSOR FOR
SELECT c.name, c.unique_index_id, c.type, i.type_desc
FROM sys.key_constraints c
INNER JOIN sys.indexes i
ON i.object_id = c.parent_object_id
AND i.index_id=c.unique_index_id
WHERE c.type IN ('PK','UQ')
AND c.parent_object_id=@objectId
OPEN c1
FETCH c1 INTO @conName, @indexId, @conType, @indexType
WHILE @@FETCH_STATUS=0
BEGIN
PRINT @conName +' ' + convert(varchar,@indexId)+' '+@conType
DECLARE c2 CURSOR FOR
SELECT '[' + c.name + ']'
FROM sys.index_columns ic
INNER JOIN sys.columns c
ON ic.object_id = c.object_id
AND c.column_id=ic.column_id
AND ic.is_included_column=0
WHERE ic.object_id = @objectId
AND ic.index_id = @indexId
--ORDER BY ic.index_column_id
ORDER BY ic.key_ordinal
OPEN c2
--SELECT @objectId,@indexId
FETCH c2 INTO @colName
PRINT @colName
SELECT @colList = @colName
FETCH c2 INTO @colName
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @colList = @colList + ',' + @colName
FETCH c2 INTO @colName
END
CLOSE c2
DEALLOCATE c2
IF @conType='PK'
SELECT @cmd='alter table '+@targetTable+' add constraint '+@conName+' primary key '+@indexType+' ('+@colList+') with (data_compression='+@compressionDesc+')'
IF @conType='UQ'
SELECT @cmd='alter table '+@targetTable+' add constraint '+@conName+' unique '+@indexType+' ('+@colList+') with (data_compression='+@compressionDesc+')'
PRINT @cmd
IF @debug=0
EXEC (@cmd)
FETCH c1 INTO @conName,@indexId,@conType,@indexType
END
CLOSE c1
DEALLOCATE c1
--Create check constraints
UPDATE IdentityCompressionLog SET status=8 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
DECLARE c1 CURSOR FOR
SELECT [name],[definition]
FROM sys.check_constraints
WHERE parent_object_id = @objectId
OPEN c1
FETCH c1 INTO @conName,@definition
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @cmd = 'ALTER TABLE ' + @targetTable + ' ADD CONSTRAINT ' + @conName + ' check ' + @definition
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @conName, @definition
END
CLOSE c1
DEALLOCATE c1
----Create indexes
UPDATE IdentityCompressionLog SET status=9 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
DECLARE @incList nvarchar(max)
DECLARE @incName nvarchar(100)
DECLARE @ascDesc nvarchar(10)
DECLARE c1 CURSOR FOR
SELECT name, index_id, type_desc,
CASE
WHEN is_unique=1 THEN 'UNIQUE'
ELSE ''
END
FROM sys.indexes i
WHERE i.object_id = @ObjectId
AND NOT EXISTS
(SELECT 1
FROM sys.key_constraints kc
WHERE kc.parent_object_id = i.object_id
AND i.index_id = kc.unique_index_id)
OPEN c1
FETCH c1 INTO @indexName, @indexId, @indexType, @uniqueness
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE c2 CURSOR FOR
SELECT '[' + c.name + ']' ,
CASE
WHEN ic.is_descending_key = 1 THEN 'DESC'
ELSE 'ASC'
END
FROM sys.index_columns ic
INNER JOIN sys.columns c
ON ic.object_id = c.object_id
AND c.column_id = ic.column_id
AND ic.is_included_column = 0
WHERE ic.object_id = @objectId
AND ic.index_id = @indexId
--ORDER BY ic.index_column_id
ORDER BY ic.key_ordinal
OPEN c2
FETCH c2 INTO @colName,@ascDesc
SELECT @colList = @colName + ' ' + @ascDesc
FETCH c2 INTO @colName, @ascDesc
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @colList = @colList + ',' + @colName + ' ' + @ascDesc
FETCH c2 INTO @colName, @ascDesc
END
CLOSE c2
DEALLOCATE c2
SELECT @colName = ''
DECLARE c2 CURSOR FOR
SELECT '[' + c.name + ']'
FROM sys.index_columns ic
INNER JOIN sys.columns c
ON ic.object_id = c.object_id
AND c.column_id = ic.column_id
AND ic.is_included_column = 1
WHERE ic.object_id = @objectId
AND ic.index_id = @indexId
--ORDER BY ic.index_column_id
ORDER BY ic.key_ordinal
OPEN c2
FETCH c2 INTO @colName
SELECT @incList = @colName
FETCH c2 INTO @colName
WHILE @@FETCH_STATUS=0
BEGIN
SELECT @incList = @incList + ',' + @colName
FETCH c2 INTO @colName
END
CLOSE c2
DEALLOCATE c2
PRINT @indexName +' : ' + @colList + ' : '+@inclist
SELECT @cmd = 'CREATE ' + @uniqueness + ' ' + @indexType+
+' INDEX [' + @indexName + '] ON ' + @targetTable + ' (' + @colList + ')'
+ CASE
WHEN @incList = '' THEN ''
ELSE ' include (' + @incList + ')'
END
+' WITH (data_compression=' + @compressionDesc + ')'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @indexName, @indexId, @indexType, @uniqueness
END
CLOSE c1
DEALLOCATE c1
----Create foreign keys
UPDATE IdentityCompressionLog SET status=10 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
DECLARE @refColName nvarchar(max)
DECLARE @refColList nvarchar(max)
DECLARE @refTable nvarchar(100)
DECLARE @onDelete nvarchar(50)
DECLARE @onUpdate nvarchar(50)
DECLARE c1 CURSOR FOR
SELECT name, delete_referential_action_desc, update_referential_action_desc
FROM sys.foreign_keys
WHERE parent_object_id = @objectId
OPEN c1
FETCH c1 INTO @conName, @onDelete, @onUpdate
WHILE @@fetch_status = 0
BEGIN
DECLARE c2 CURSOR FOR
SELECT pc.name, rc.name, '[' + schema_name(t.schema_id) + '].[' + t.name + ']'
FROM sys.foreign_key_columns fkc
INNER JOIN sys.foreign_keys fk
ON fkc.constraint_object_id = fk.object_id
INNER JOIN sys.columns pc
ON pc.column_id = fkc.parent_column_id
AND pc.object_id = @objectId
INNER JOIN sys.columns rc
ON rc.column_id = fkc.referenced_column_id
AND rc.object_id = fkc.referenced_object_id
INNER JOIN sys.tables t
ON t.object_id = fkc.referenced_object_id
WHERE fk.parent_object_id=@objectId
AND fk.name = @conName
ORDER BY fkc.constraint_column_id
OPEN c2
FETCH c2 INTO @colName, @refColName, @refTable
SELECT @colList = @colName
SELECT @refColList = @refColName
FETCH c2 INTO @colName, @refColName, @refTable
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @colList = ',' + @colName
SELECT @refColList = ',' + @refColName
FETCH c2 INTO @colName,@refColName,@refTable
END
CLOSE c2
DEALLOCATE c2
SELECT @cmd = 'ALTER TABLE ' + @targetTable + ' ADD CONSTRAINT [' + @conName + '] FOREIGN KEY (' + @colList + ') REFERENCES ' + @refTable + '(' + @refColList + ') '
+ CASE
WHEN @onDelete != 'NO_ACTION' THEN 'on delete ' + @onDelete
ELSE ''
END
+ CASE
WHEN @onUpdate != 'NO_ACTION' THEN 'on update ' + @onUpdate
ELSE ''
END
PRINT @cmd
IF @debug=0
EXEC (@cmd)
FETCH c1 INTO @conName, @onDelete, @onUpdate
END
CLOSE c1
DEALLOCATE c1
-- Rename the primary key and drop foreign keys in the source table
UPDATE IdentityCompressionLog SET status=11 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
DECLARE c1 CURSOR FOR
SELECT name, type
FROM sys.key_constraints
WHERE parent_object_id = @objectId
UNION ALL
SELECT name,type
FROM sys.foreign_keys
WHERE parent_object_id = @objectId
OPEN c1
FETCH c1 INTO @conName, @conType
WHILE @@FETCH_STATUS = 0
BEGIN
IF @conType = 'F'
SELECT @cmd = 'ALTER TABLE [' + @sourceSchema + '].[' + @sourceTable + '] DROP CONSTRAINT [' + @conName + ']'
ELSE
SELECT @cmd = 'sp_rename ''' + @sourceSchema + '.' + @sourceTable + '.' + @conName + ''',' + '''' + @conName + '_' + @suffix + ''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
FETCH c1 INTO @conName,@conType
END
CLOSE c1
DEALLOCATE c1
-- Turn on change tracking if required
UPDATE IdentityCompressionLog SET status=12 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
IF EXISTS (SELECT 1 FROM sys.change_tracking_tables WHERE OBJECT_ID=@objectId)
BEGIN
SELECT @cmd='ALTER TABLE '+@targetTable+' enable Change_tracking'
exec (@cmd)
END
-- Replace the source table with the target table. Move the source table to the bak schema and append @suffix
UPDATE IdentityCompressionLog SET status=13 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
SELECT @cmd = 'sp_rename ''' + @sourceSchema + '.' + @sourceTable + '''' + ',''' + @sourceTable + '_' + @suffix + ''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'sp_rename ''' + REPLACE(REPLACE(@targetTable,'[',''),']','') + ''',''' + @sourceTable + ''''
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'ALTER SCHEMA [' + @sourceSchema + '] TRANSFER [data].[' + @sourceTable + ']'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
SELECT @cmd = 'ALTER SCHEMA [BAK] TRANSFER [' + @sourceSchema + '].[' + @sourceTable + '_' + @suffix + ']'
PRINT @cmd
IF @debug = 0
EXEC (@cmd)
--Update replication table if required
UPDATE IdentityCompressionLog SET status=14 WHERE runtime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
IF EXISTS (SELECT 1 FROM dbo.ReplicationTable WHERE TableName=@fullSourceName)
BEGIN
UPDATE dbo.ReplicationTable set LastRefreshChangeTrackingVersion = null
WHERE TableName = @fullSourceName
END
UPDATE IdentityCompressionLog SET status=0 WHERE runTime=@runTime and schemaName=@sourceSchema and tableName=@sourceTable
GO
---------------------------------------------
-- dbo.IntAddSimpleSecurityForActions
create proc dbo.IntAddSimpleSecurityForActions
AS
BEGIN
declare @everyone uniqueidentifier = '00000000-0000-0000-0000-000000000001';
declare @count int;
select @count = COUNT(PermissionGuid) from S3SimplePermission P where P.LootID = '18F307C3-C344-424F-A38E-1F7ABCD295A5' and P.IdentityGUID = @everyone;
if (@count = 0) begin
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
VALUES ('18F307C3-C344-424F-A38E-1F7ABCD295A5', @everyone, 1,1,1);
end
set @count = 0;
select @count = COUNT(PermissionGuid) from S3SimplePermission P where P.LootID = '38CF0A6C-FBA8-44F9-A707-B8BAA2234EEB' and P.IdentityGUID = @everyone;
if (@count = 0) begin
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
VALUES ('38CF0A6C-FBA8-44F9-A707-B8BAA2234EEB', @everyone, 1,1,1);
end
set @count = 0;
select @count = COUNT(PermissionGuid) from S3SimplePermission P where P.LootID = 'BA71645B-30B9-4ED1-A43B-89EFC06931B9' and P.IdentityGUID = @everyone;
if (@count = 0) begin
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
VALUES ('BA71645B-30B9-4ED1-A43B-89EFC06931B9', @everyone, 1,1,1);
end
set @count = 0;
select @count = COUNT(PermissionGuid) from S3SimplePermission P where P.LootID = '74DAD74D-3F8C-4C31-A5FD-972EC0868A50' and P.IdentityGUID = @everyone;
if (@count = 0) begin
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
VALUES ('74DAD74D-3F8C-4C31-A5FD-972EC0868A50', @everyone, 1,1,1);
end
END
GO
---------------------------------------------
-- dbo.dt_addtosourcecontrol
create proc dbo.dt_addtosourcecontrol
@vchSourceSafeINI varchar(255) = '',
@vchProjectName varchar(255) ='',
@vchComment varchar(255) ='',
@vchLoginName varchar(255) ='',
@vchPassword varchar(255) =''
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId = 0
declare @iStreamObjectId int
select @iStreamObjectId = 0
declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'
declare @vchDatabaseName varchar(255)
select @vchDatabaseName = db_name()
declare @iReturnValue int
select @iReturnValue = 0
declare @iPropertyObjectId int
declare @vchParentId varchar(255)
declare @iObjectCount int
select @iObjectCount = 0
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
/* Create Project in SS */
exec @iReturn = sp_OAMethod @iObjectId,
'AddProjectToSourceSafe',
NULL,
@vchSourceSafeINI,
@vchProjectName output,
@@SERVERNAME,
@vchDatabaseName,
@vchLoginName,
@vchPassword,
@vchComment
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAGetProperty @iObjectId, 'GetStreamObject', @iStreamObjectId OUT
if @iReturn <> 0 GOTO E_OAError
/* Set Database Properties */
begin tran SetProperties
/* add high level object */
exec @iPropertyObjectId = dbo.dt_adduserobject_vcs 'VCSProjectID'
select @vchParentId = CONVERT(varchar(255),@iPropertyObjectId)
exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSProjectID', @vchParentId , NULL
exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSProject' , @vchProjectName , NULL
exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSSourceSafeINI' , @vchSourceSafeINI , NULL
exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSSQLServer', @@SERVERNAME, NULL
exec dbo.dt_setpropertybyid @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName, NULL
if @@error <> 0 GOTO E_General_Error
commit tran SetProperties
declare cursorProcNames cursor for
select convert(varchar(255), name) from sysobjects where type = 'P' and name not like 'dt_%'
open cursorProcNames
while 1 = 1
begin
declare @vchProcName varchar(255)
fetch next from cursorProcNames into @vchProcName
if @@fetch_status <> 0
break
select colid, text into #ProcLines
from syscomments
where id = object_id(@vchProcName)
order by colid
declare @iCurProcLine int
declare @iProcLines int
select @iCurProcLine = 1
select @iProcLines = (select count(*) from #ProcLines)
while @iCurProcLine <= @iProcLines
begin
declare @pos int
select @pos = 1
declare @iCurLineSize int
select @iCurLineSize = len((select text from #ProcLines where colid = @iCurProcLine))
while @pos <= @iCurLineSize
begin
declare @vchProcLinePiece varchar(255)
select @vchProcLinePiece = convert(varchar(255),
substring((select text from #ProcLines where colid = @iCurProcLine),
@pos, 255 ))
exec @iReturn = sp_OAMethod @iStreamObjectId, 'AddStream', @iReturnValue OUT, @vchProcLinePiece
if @iReturn <> 0 GOTO E_OAError
select @pos = @pos + 255
end
select @iCurProcLine = @iCurProcLine + 1
end
drop table #ProcLines
exec @iReturn = sp_OAMethod @iObjectId,
'CheckIn_StoredProcedure',
NULL,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sServerName = @@SERVERNAME,
@sDatabaseName = @vchDatabaseName,
@sObjectName = @vchProcName,
@sComment = @vchComment,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword,
@iVCSFlags = 0,
@iActionFlag = 0,
@sStream = ''
if @iReturn = 0 select @iObjectCount = @iObjectCount + 1
end
CleanUp:
close cursorProcNames
deallocate cursorProcNames
select @vchProjectName
select @iObjectCount
return
E_General_Error:
/* this is an all or nothing. No specific error messages */
goto CleanUp
E_OAError:
exec dbo.dt_displayoaerror @iObjectId, @iReturn
goto CleanUp
GO
---------------------------------------------
-- dbo.dt_addtosourcecontrol_u
create proc dbo.dt_addtosourcecontrol_u
@vchSourceSafeINI nvarchar(255) = '',
@vchProjectName nvarchar(255) ='',
@vchComment nvarchar(255) ='',
@vchLoginName nvarchar(255) ='',
@vchPassword nvarchar(255) =''
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId = 0
declare @iStreamObjectId int
select @iStreamObjectId = 0
declare @VSSGUID nvarchar(100)
select @VSSGUID = N'SQLVersionControl.VCS_SQL'
declare @vchDatabaseName varchar(255)
select @vchDatabaseName = db_name()
declare @iReturnValue int
select @iReturnValue = 0
declare @iPropertyObjectId int
declare @vchParentId nvarchar(255)
declare @iObjectCount int
select @iObjectCount = 0
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
/* Create Project in SS */
exec @iReturn = sp_OAMethod @iObjectId,
'AddProjectToSourceSafe',
NULL,
@vchSourceSafeINI,
@vchProjectName output,
@@SERVERNAME,
@vchDatabaseName,
@vchLoginName,
@vchPassword,
@vchComment
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAGetProperty @iObjectId, N'GetStreamObject', @iStreamObjectId OUT
if @iReturn <> 0 GOTO E_OAError
/* Set Database Properties */
begin tran SetProperties
/* add high level object */
exec @iPropertyObjectId = dbo.dt_adduserobject_vcs 'VCSProjectID'
select @vchParentId = CONVERT(nvarchar(255),@iPropertyObjectId)
exec dbo.dt_setpropertybyid_u @iPropertyObjectId, 'VCSProjectID', @vchParentId , NULL
exec dbo.dt_setpropertybyid_u @iPropertyObjectId, 'VCSProject' , @vchProjectName , NULL
exec dbo.dt_setpropertybyid_u @iPropertyObjectId, 'VCSSourceSafeINI' , @vchSourceSafeINI , NULL
exec dbo.dt_setpropertybyid_u @iPropertyObjectId, 'VCSSQLServer', @@SERVERNAME, NULL
exec dbo.dt_setpropertybyid_u @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName, NULL
if @@error <> 0 GOTO E_General_Error
commit tran SetProperties
declare cursorProcNames cursor for
select convert(nvarchar(255), name) from sysobjects where type = N'P' and name not like N'dt_%'
open cursorProcNames
while 1 = 1
begin
declare @vchProcName nvarchar(255)
fetch next from cursorProcNames into @vchProcName
if @@fetch_status <> 0
break
select colid, text into #ProcLines
from syscomments
where id = object_id(@vchProcName)
order by colid
declare @iCurProcLine int
declare @iProcLines int
select @iCurProcLine = 1
select @iProcLines = (select count(*) from #ProcLines)
while @iCurProcLine <= @iProcLines
begin
declare @pos int
select @pos = 1
declare @iCurLineSize int
select @iCurLineSize = len((select text from #ProcLines where colid = @iCurProcLine))
while @pos <= @iCurLineSize
begin
declare @vchProcLinePiece nvarchar(255)
select @vchProcLinePiece = convert(nvarchar(255),
substring((select text from #ProcLines where colid = @iCurProcLine),
@pos, 255 ))
exec @iReturn = sp_OAMethod @iStreamObjectId, N'AddStream', @iReturnValue OUT, @vchProcLinePiece
if @iReturn <> 0 GOTO E_OAError
select @pos = @pos + 255
end
select @iCurProcLine = @iCurProcLine + 1
end
drop table #ProcLines
exec @iReturn = sp_OAMethod @iObjectId,
'CheckIn_StoredProcedure',
NULL,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sServerName = @@SERVERNAME,
@sDatabaseName = @vchDatabaseName,
@sObjectName = @vchProcName,
@sComment = @vchComment,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword,
@iVCSFlags = 0,
@iActionFlag = 0,
@sStream = ''
if @iReturn = 0 select @iObjectCount = @iObjectCount + 1
end
CleanUp:
close cursorProcNames
deallocate cursorProcNames
select @vchProjectName
select @iObjectCount
return
E_General_Error:
/* this is an all or nothing. No specific error messages */
goto CleanUp
E_OAError:
exec dbo.dt_displayoaerror_u @iObjectId, @iReturn
goto CleanUp
GO
---------------------------------------------
-- dbo.dt_adduserobject
/*
** Add an object to the dtproperties table
*/
create procedure dbo.dt_adduserobject
as
set nocount on
/*
** Create the user object if it does not exist already
*/
begin transaction
insert dbo.dtproperties (property) VALUES ('DtgSchemaOBJECT')
update dbo.dtproperties set objectid=@@identity
where id=@@identity and property='DtgSchemaOBJECT'
commit
return @@identity
GO
---------------------------------------------
-- dbo.dt_adduserobject_vcs
create procedure dbo.dt_adduserobject_vcs
@vchProperty varchar(64)
as
set nocount on
declare @iReturn int
/*
** Create the user object if it does not exist already
*/
begin transaction
select @iReturn = objectid from dbo.dtproperties where property = @vchProperty
if @iReturn IS NULL
begin
insert dbo.dtproperties (property) VALUES (@vchProperty)
update dbo.dtproperties set objectid=@@identity
where id=@@identity and property=@vchProperty
select @iReturn = @@identity
end
commit
return @iReturn
GO
---------------------------------------------
-- dbo.dt_checkinobject
create proc dbo.dt_checkinobject
@chObjectType char(4),
@vchObjectName varchar(255),
@vchComment varchar(255)='',
@vchLoginName varchar(255),
@vchPassword varchar(255)='',
@iVCSFlags int = 0,
@iActionFlag int = 0, /* 0 => AddFile, 1 => CheckIn */
@txStream1 Text = '', /* There is a bug that if items are NULL they do not pass to OLE servers */
@txStream2 Text = '',
@txStream3 Text = ''
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId = 0
declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'
declare @iPropertyObjectId int
select @iPropertyObjectId = 0
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchProjectName varchar(255)
declare @vchSourceSafeINI varchar(255)
declare @vchServerName varchar(255)
declare @vchDatabaseName varchar(255)
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSProject', @vchProjectName OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLServer', @vchServerName OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName OUT
if @chObjectType = 'PROC'
begin
if @iActionFlag = 1
begin
/* Procedure Can have up to three streams
Drop Stream, Create Stream, GRANT stream */
begin tran compile_all
/* try to compile the streams */
exec (@txStream1)
if @@error <> 0 GOTO E_Compile_Fail
exec (@txStream2)
if @@error <> 0 GOTO E_Compile_Fail
exec (@txStream3)
if @@error <> 0 GOTO E_Compile_Fail
end
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
if @iActionFlag = 1
begin
exec @iReturn = sp_OAMethod @iObjectId,
'CheckIn_StoredProcedure',
NULL,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sServerName = @vchServerName,
@sDatabaseName = @vchDatabaseName,
@sObjectName = @vchObjectName,
@sComment = @vchComment,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword,
@iVCSFlags = @iVCSFlags,
@iActionFlag = @iActionFlag,
@sStream = @txStream2
end
else
begin
declare @iStreamObjectId int
declare @iReturnValue int
exec @iReturn = sp_OAGetProperty @iObjectId, 'GetStreamObject', @iStreamObjectId OUT
if @iReturn <> 0 GOTO E_OAError
select colid, text into #ProcLines
from syscomments
where id = object_id(@vchObjectName)
order by colid
declare @iCurProcLine int
declare @iProcLines int
select @iCurProcLine = 1
select @iProcLines = (select count(*) from #ProcLines)
while @iCurProcLine <= @iProcLines
begin
declare @pos int
select @pos = 1
declare @iCurLineSize int
select @iCurLineSize = len((select text from #ProcLines where colid = @iCurProcLine))
while @pos <= @iCurLineSize
begin
declare @vchProcLinePiece varchar(255)
select @vchProcLinePiece = convert(varchar(255),
substring((select text from #ProcLines where colid = @iCurProcLine),
@pos, 255 ))
exec @iReturn = sp_OAMethod @iStreamObjectId, 'AddStream', @iReturnValue OUT, @vchProcLinePiece
if @iReturn <> 0 GOTO E_OAError
select @pos = @pos + 255
end
select @iCurProcLine = @iCurProcLine + 1
end
drop table #ProcLines
exec @iReturn = sp_OAMethod @iObjectId,
'CheckIn_StoredProcedure',
NULL,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sServerName = @vchServerName,
@sDatabaseName = @vchDatabaseName,
@sObjectName = @vchObjectName,
@sComment = @vchComment,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword,
@iVCSFlags = @iVCSFlags,
@iActionFlag = @iActionFlag,
@sStream = ''
end
if @iReturn <> 0 GOTO E_OAError
if @iActionFlag = 1
begin
commit tran compile_all
if @@error <> 0 GOTO E_Compile_Fail
end
end
CleanUp:
return
E_Compile_Fail:
declare @lerror int
select @lerror = @@error
rollback tran compile_all
RAISERROR (@lerror,16,-1)
goto CleanUp
E_OAError:
if @iActionFlag = 1 rollback tran compile_all
exec dbo.dt_displayoaerror @iObjectId, @iReturn
goto CleanUp
GO
---------------------------------------------
-- dbo.dt_checkinobject_u
create proc dbo.dt_checkinobject_u
@chObjectType char(4),
@vchObjectName nvarchar(255),
@vchComment nvarchar(255)='',
@vchLoginName nvarchar(255),
@vchPassword nvarchar(255)='',
@iVCSFlags int = 0,
@iActionFlag int = 0, /* 0 => AddFile, 1 => CheckIn */
@txStream1 Text = '', /* There is a bug that if items are NULL they do not pass to OLE servers */
@txStream2 Text = '',
@txStream3 Text = ''
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId = 0
declare @VSSGUID nvarchar(100)
select @VSSGUID = N'SQLVersionControl.VCS_SQL'
declare @iPropertyObjectId int
select @iPropertyObjectId = 0
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchProjectName nvarchar(255)
declare @vchSourceSafeINI nvarchar(255)
declare @vchServerName nvarchar(255)
declare @vchDatabaseName nvarchar(255)
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSProject', @vchProjectName OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSQLServer', @vchServerName OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName OUT
if @chObjectType = 'PROC'
begin
if @iActionFlag = 1
begin
/* Procedure Can have up to three streams
Drop Stream, Create Stream, GRANT stream */
begin tran compile_all
/* try to compile the streams */
exec (@txStream1)
if @@error <> 0 GOTO E_Compile_Fail
exec (@txStream2)
if @@error <> 0 GOTO E_Compile_Fail
exec (@txStream3)
if @@error <> 0 GOTO E_Compile_Fail
end
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
if @iActionFlag = 1
begin
exec @iReturn = sp_OAMethod @iObjectId,
N'CheckIn_StoredProcedure',
NULL,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sServerName = @vchServerName,
@sDatabaseName = @vchDatabaseName,
@sObjectName = @vchObjectName,
@sComment = @vchComment,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword,
@iVCSFlags = @iVCSFlags,
@iActionFlag = @iActionFlag,
@sStream = @txStream2
end
else
begin
declare @iStreamObjectId int
declare @iReturnValue int
exec @iReturn = sp_OAGetProperty @iObjectId, N'GetStreamObject', @iStreamObjectId OUT
if @iReturn <> 0 GOTO E_OAError
select colid, text into #ProcLines
from syscomments
where id = object_id(@vchObjectName)
order by colid
declare @iCurProcLine int
declare @iProcLines int
select @iCurProcLine = 1
select @iProcLines = (select count(*) from #ProcLines)
while @iCurProcLine <= @iProcLines
begin
declare @pos int
select @pos = 1
declare @iCurLineSize int
select @iCurLineSize = len((select text from #ProcLines where colid = @iCurProcLine))
while @pos <= @iCurLineSize
begin
declare @vchProcLinePiece nvarchar(255)
select @vchProcLinePiece = convert(nvarchar(255),
substring((select text from #ProcLines where colid = @iCurProcLine),
@pos, 255 ))
exec @iReturn = sp_OAMethod @iStreamObjectId, N'AddStream', @iReturnValue OUT, @vchProcLinePiece
if @iReturn <> 0 GOTO E_OAError
select @pos = @pos + 255
end
select @iCurProcLine = @iCurProcLine + 1
end
drop table #ProcLines
exec @iReturn = sp_OAMethod @iObjectId,
N'CheckIn_StoredProcedure',
NULL,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sServerName = @vchServerName,
@sDatabaseName = @vchDatabaseName,
@sObjectName = @vchObjectName,
@sComment = @vchComment,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword,
@iVCSFlags = @iVCSFlags,
@iActionFlag = @iActionFlag,
@sStream = ''
end
if @iReturn <> 0 GOTO E_OAError
if @iActionFlag = 1
begin
commit tran compile_all
if @@error <> 0 GOTO E_Compile_Fail
end
end
CleanUp:
return
E_Compile_Fail:
declare @lerror int
select @lerror = @@error
rollback tran compile_all
RAISERROR (@lerror,16,-1)
goto CleanUp
E_OAError:
if @iActionFlag = 1 rollback tran compile_all
exec dbo.dt_displayoaerror_u @iObjectId, @iReturn
goto CleanUp
GO
---------------------------------------------
-- dbo.dt_checkoutobject
create proc dbo.dt_checkoutobject
@chObjectType char(4),
@vchObjectName varchar(255),
@vchComment varchar(255),
@vchLoginName varchar(255),
@vchPassword varchar(255),
@iVCSFlags int = 0,
@iActionFlag int = 0/* 0 => Checkout, 1 => GetLatest, 2 => UndoCheckOut */
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId =0
declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'
declare @iReturnValue int
select @iReturnValue = 0
declare @vchTempText varchar(255)
/* this is for our strings */
declare @iStreamObjectId int
select @iStreamObjectId = 0
declare @iPropertyObjectId int
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchProjectName varchar(255)
declare @vchSourceSafeINI varchar(255)
declare @vchServerName varchar(255)
declare @vchDatabaseName varchar(255)
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSProject', @vchProjectName OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLServer', @vchServerName OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName OUT
if @chObjectType = 'PROC'
begin
/* Procedure Can have up to three streams
Drop Stream, Create Stream, GRANT stream */
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAMethod @iObjectId,
'CheckOut_StoredProcedure',
NULL,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sObjectName = @vchObjectName,
@sServerName = @vchServerName,
@sDatabaseName = @vchDatabaseName,
@sComment = @vchComment,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword,
@iVCSFlags = @iVCSFlags,
@iActionFlag = @iActionFlag
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAGetProperty @iObjectId, 'GetStreamObject', @iStreamObjectId OUT
if @iReturn <> 0 GOTO E_OAError
create table #commenttext (id int identity, sourcecode varchar(255))
select @vchTempText = 'STUB'
while @vchTempText IS NOT NULL
begin
exec @iReturn = sp_OAMethod @iStreamObjectId, 'GetStream', @iReturnValue OUT, @vchTempText OUT
if @iReturn <> 0 GOTO E_OAError
if (@vchTempText IS NOT NULL) insert into #commenttext (sourcecode) select @vchTempText
end
select 'VCS'=sourcecode from #commenttext order by id
select 'SQL'=text from syscomments where id = object_id(@vchObjectName) order by colid
end
CleanUp:
return
E_OAError:
exec dbo.dt_displayoaerror @iObjectId, @iReturn
GOTO CleanUp
GO
---------------------------------------------
-- dbo.dt_checkoutobject_u
create proc dbo.dt_checkoutobject_u
@chObjectType char(4),
@vchObjectName nvarchar(255),
@vchComment nvarchar(255),
@vchLoginName nvarchar(255),
@vchPassword nvarchar(255),
@iVCSFlags int = 0,
@iActionFlag int = 0/* 0 => Checkout, 1 => GetLatest, 2 => UndoCheckOut */
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId =0
declare @VSSGUID nvarchar(100)
select @VSSGUID = N'SQLVersionControl.VCS_SQL'
declare @iReturnValue int
select @iReturnValue = 0
declare @vchTempText nvarchar(255)
/* this is for our strings */
declare @iStreamObjectId int
select @iStreamObjectId = 0
declare @iPropertyObjectId int
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchProjectName nvarchar(255)
declare @vchSourceSafeINI nvarchar(255)
declare @vchServerName nvarchar(255)
declare @vchDatabaseName nvarchar(255)
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSProject', @vchProjectName OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSQLServer', @vchServerName OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName OUT
if @chObjectType = 'PROC'
begin
/* Procedure Can have up to three streams
Drop Stream, Create Stream, GRANT stream */
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAMethod @iObjectId,
N'CheckOut_StoredProcedure',
NULL,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sObjectName = @vchObjectName,
@sServerName = @vchServerName,
@sDatabaseName = @vchDatabaseName,
@sComment = @vchComment,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword,
@iVCSFlags = @iVCSFlags,
@iActionFlag = @iActionFlag
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAGetProperty @iObjectId, N'GetStreamObject', @iStreamObjectId OUT
if @iReturn <> 0 GOTO E_OAError
create table #commenttext (id int identity, sourcecode nvarchar(255))
select @vchTempText = N'STUB'
while @vchTempText IS NOT NULL
begin
exec @iReturn = sp_OAMethod @iStreamObjectId, N'GetStream', @iReturnValue OUT, @vchTempText OUT
if @iReturn <> 0 GOTO E_OAError
if (@vchTempText IS NOT NULL) insert into #commenttext (sourcecode) select @vchTempText
end
select N'VCS'=sourcecode from #commenttext order by id
select N'SQL'=text from syscomments where id = object_id(@vchObjectName) order by colid
end
CleanUp:
return
E_OAError:
exec dbo.dt_displayoaerror_u @iObjectId, @iReturn
GOTO CleanUp
GO
---------------------------------------------
-- dbo.dt_displayoaerror
CREATE PROCEDURE dbo.dt_displayoaerror
@iObject int,
@iresult int
as
set nocount on
declare @vchOutput varchar(255)
declare @hr int
declare @vchSource varchar(255)
declare @vchDescription varchar(255)
exec @hr = sp_OAGetErrorInfo @iObject, @vchSource OUT, @vchDescription OUT
select @vchOutput = @vchSource + ': ' + @vchDescription
raiserror (@vchOutput,16,-1)
return
GO
---------------------------------------------
-- dbo.dt_displayoaerror_u
CREATE PROCEDURE dbo.dt_displayoaerror_u
@iObject int,
@iresult int
as
set nocount on
declare @vchOutput nvarchar(255)
declare @hr int
declare @vchSource nvarchar(255)
declare @vchDescription nvarchar(255)
exec @hr = sp_OAGetErrorInfo @iObject, @vchSource OUT, @vchDescription OUT
select @vchOutput = @vchSource + ': ' + @vchDescription
raiserror (@vchOutput,16,-1)
return
GO
---------------------------------------------
-- dbo.dt_droppropertiesbyid
/*
** Drop one or all the associated properties of an object or an attribute
**
** dt_dropproperties objid, null or '' -- drop all properties of the object itself
** dt_dropproperties objid, property -- drop the property
*/
create procedure dbo.dt_droppropertiesbyid
@id int,
@property varchar(64)
as
set nocount on
if (@property is null) or (@property = '')
delete from dbo.dtproperties where objectid=@id
else
delete from dbo.dtproperties
where objectid=@id and property=@property
GO
---------------------------------------------
-- dbo.dt_dropuserobjectbyid
/*
** Drop an object from the dbo.dtproperties table
*/
create procedure dbo.dt_dropuserobjectbyid
@id int
as
set nocount on
delete from dbo.dtproperties where objectid=@id
GO
---------------------------------------------
-- dbo.dt_generateansiname
/*
** Generate an ansi name that is unique in the dtproperties.value column
*/
create procedure dbo.dt_generateansiname(@name varchar(255) output)
as
declare @prologue varchar(20)
declare @indexstring varchar(20)
declare @index integer
set @prologue = 'MSDT-A-'
set @index = 1
while 1 = 1
begin
set @indexstring = cast(@index as varchar(20))
set @name = @prologue + @indexstring
if not exists (select value from dtproperties where value = @name)
break
set @index = @index + 1
if (@index = 10000)
goto TooMany
end
Leave:
return
TooMany:
set @name = 'DIAGRAM'
goto Leave
GO
---------------------------------------------
-- dbo.dt_getobjwithprop
/*
** Retrieve the owner object(s) of a given property
*/
create procedure dbo.dt_getobjwithprop
@property varchar(30),
@value varchar(255)
as
set nocount on
if (@property is null) or (@property = '')
begin
raiserror('Must specify a property name.',-1,-1)
return (1)
end
if (@value is null)
select objectid id from dbo.dtproperties
where property=@property
else
select objectid id from dbo.dtproperties
where property=@property and value=@value
GO
---------------------------------------------
-- dbo.dt_getobjwithprop_u
/*
** Retrieve the owner object(s) of a given property
*/
create procedure dbo.dt_getobjwithprop_u
@property varchar(30),
@uvalue nvarchar(255)
as
set nocount on
if (@property is null) or (@property = '')
begin
raiserror('Must specify a property name.',-1,-1)
return (1)
end
if (@uvalue is null)
select objectid id from dbo.dtproperties
where property=@property
else
select objectid id from dbo.dtproperties
where property=@property and uvalue=@uvalue
GO
---------------------------------------------
-- dbo.dt_getpropertiesbyid
/*
** Retrieve properties by id's
**
** dt_getproperties objid, null or '' -- retrieve all properties of the object itself
** dt_getproperties objid, property -- retrieve the property specified
*/
create procedure dbo.dt_getpropertiesbyid
@id int,
@property varchar(64)
as
set nocount on
if (@property is null) or (@property = '')
select property, version, value, lvalue
from dbo.dtproperties
where @id=objectid
else
select property, version, value, lvalue
from dbo.dtproperties
where @id=objectid and @property=property
GO
---------------------------------------------
-- dbo.dt_getpropertiesbyid_u
/*
** Retrieve properties by id's
**
** dt_getproperties objid, null or '' -- retrieve all properties of the object itself
** dt_getproperties objid, property -- retrieve the property specified
*/
create procedure dbo.dt_getpropertiesbyid_u
@id int,
@property varchar(64)
as
set nocount on
if (@property is null) or (@property = '')
select property, version, uvalue, lvalue
from dbo.dtproperties
where @id=objectid
else
select property, version, uvalue, lvalue
from dbo.dtproperties
where @id=objectid and @property=property
GO
---------------------------------------------
-- dbo.dt_getpropertiesbyid_vcs
create procedure dbo.dt_getpropertiesbyid_vcs
@id int,
@property varchar(64),
@value varchar(255) = NULL OUT
as
set nocount on
select @value = (
select value
from dbo.dtproperties
where @id=objectid and @property=property
)
GO
---------------------------------------------
-- dbo.dt_getpropertiesbyid_vcs_u
create procedure dbo.dt_getpropertiesbyid_vcs_u
@id int,
@property varchar(64),
@value nvarchar(255) = NULL OUT
as
set nocount on
select @value = (
select uvalue
from dbo.dtproperties
where @id=objectid and @property=property
)
GO
---------------------------------------------
-- dbo.dt_isundersourcecontrol
create proc dbo.dt_isundersourcecontrol
@vchLoginName varchar(255) = '',
@vchPassword varchar(255) = '',
@iWhoToo int = 0 /* 0 => Just check project; 1 => get list of objs */
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId = 0
declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'
declare @iReturnValue int
select @iReturnValue = 0
declare @iStreamObjectId int
select @iStreamObjectId = 0
declare @vchTempText varchar(255)
declare @iPropertyObjectId int
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchProjectName varchar(255)
declare @vchSourceSafeINI varchar(255)
declare @vchServerName varchar(255)
declare @vchDatabaseName varchar(255)
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSProject', @vchProjectName OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLServer', @vchServerName OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName OUT
if (@vchProjectName IS NULL) or (@vchSourceSafeINI IS NULL) or (@vchServerName IS NULL) or (@vchDatabaseName IS NULL)
begin
RAISERROR('Not Under Source Control',16,-1)
return
end
if @iWhoToo = 1
begin
/* Get List of Procs in the project */
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAMethod @iObjectId,
'GetListOfObjects',
NULL,
@vchProjectName,
@vchSourceSafeINI,
@vchServerName,
@vchDatabaseName,
@vchLoginName,
@vchPassword
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAGetProperty @iObjectId, 'GetStreamObject', @iStreamObjectId OUT
if @iReturn <> 0 GOTO E_OAError
create table #ObjectList (id int identity, vchObjectlist varchar(255))
select @vchTempText = 'STUB'
while @vchTempText IS NOT NULL
begin
exec @iReturn = sp_OAMethod @iStreamObjectId, 'GetStream', @iReturnValue OUT, @vchTempText OUT
if @iReturn <> 0 GOTO E_OAError
if (@vchTempText IS NOT NULL) insert into #ObjectList (vchObjectlist ) select @vchTempText
end
select vchObjectlist from #ObjectList order by id
end
CleanUp:
return
E_OAError:
exec dbo.dt_displayoaerror @iObjectId, @iReturn
goto CleanUp
GO
---------------------------------------------
-- dbo.dt_isundersourcecontrol_u
create proc dbo.dt_isundersourcecontrol_u
@vchLoginName nvarchar(255) = '',
@vchPassword nvarchar(255) = '',
@iWhoToo int = 0 /* 0 => Just check project; 1 => get list of objs */
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId = 0
declare @VSSGUID nvarchar(100)
select @VSSGUID = N'SQLVersionControl.VCS_SQL'
declare @iReturnValue int
select @iReturnValue = 0
declare @iStreamObjectId int
select @iStreamObjectId = 0
declare @vchTempText nvarchar(255)
declare @iPropertyObjectId int
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchProjectName nvarchar(255)
declare @vchSourceSafeINI nvarchar(255)
declare @vchServerName nvarchar(255)
declare @vchDatabaseName nvarchar(255)
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSProject', @vchProjectName OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSQLServer', @vchServerName OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName OUT
if (@vchProjectName IS NULL) or (@vchSourceSafeINI IS NULL) or (@vchServerName IS NULL) or (@vchDatabaseName IS NULL)
begin
RAISERROR(N'Not Under Source Control',16,-1)
return
end
if @iWhoToo = 1
begin
/* Get List of Procs in the project */
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAMethod @iObjectId,
N'GetListOfObjects',
NULL,
@vchProjectName,
@vchSourceSafeINI,
@vchServerName,
@vchDatabaseName,
@vchLoginName,
@vchPassword
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAGetProperty @iObjectId, N'GetStreamObject', @iStreamObjectId OUT
if @iReturn <> 0 GOTO E_OAError
create table #ObjectList (id int identity, vchObjectlist nvarchar(255))
select @vchTempText = N'STUB'
while @vchTempText IS NOT NULL
begin
exec @iReturn = sp_OAMethod @iStreamObjectId, N'GetStream', @iReturnValue OUT, @vchTempText OUT
if @iReturn <> 0 GOTO E_OAError
if (@vchTempText IS NOT NULL) insert into #ObjectList (vchObjectlist ) select @vchTempText
end
select vchObjectlist from #ObjectList order by id
end
CleanUp:
return
E_OAError:
exec dbo.dt_displayoaerror_u @iObjectId, @iReturn
goto CleanUp
GO
---------------------------------------------
-- dbo.dt_removefromsourcecontrol
create procedure dbo.dt_removefromsourcecontrol
as
set nocount on
declare @iPropertyObjectId int
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
exec dbo.dt_droppropertiesbyid @iPropertyObjectId, null
/* -1 is returned by dt_droppopertiesbyid */
if @@error <> 0 and @@error <> -1 return 1
return 0
GO
---------------------------------------------
-- dbo.dt_setpropertybyid
/*
** If the property already exists, reset the value; otherwise add property
** id -- the id in sysobjects of the object
** property -- the name of the property
** value -- the text value of the property
** lvalue -- the binary value of the property (image)
*/
create procedure dbo.dt_setpropertybyid
@id int,
@property varchar(64),
@value varchar(255),
@lvalue image
as
set nocount on
declare @uvalue nvarchar(255)
set @uvalue = convert(nvarchar(255), @value)
if exists (select * from dbo.dtproperties
where objectid=@id and property=@property)
begin
--
-- bump the version count for this row as we update it
--
update dbo.dtproperties set value=@value, uvalue=@uvalue, lvalue=@lvalue, version=version+1
where objectid=@id and property=@property
end
else
begin
--
-- version count is auto-set to 0 on initial insert
--
insert dbo.dtproperties (property, objectid, value, uvalue, lvalue)
values (@property, @id, @value, @uvalue, @lvalue)
end
GO
---------------------------------------------
-- dbo.dt_setpropertybyid_u
/*
** If the property already exists, reset the value; otherwise add property
** id -- the id in sysobjects of the object
** property -- the name of the property
** uvalue -- the text value of the property
** lvalue -- the binary value of the property (image)
*/
create procedure dbo.dt_setpropertybyid_u
@id int,
@property varchar(64),
@uvalue nvarchar(255),
@lvalue image
as
set nocount on
--
-- If we are writing the name property, find the ansi equivalent.
-- If there is no lossless translation, generate an ansi name.
--
declare @avalue varchar(255)
set @avalue = null
if (@uvalue is not null)
begin
if (convert(nvarchar(255), convert(varchar(255), @uvalue)) = @uvalue)
begin
set @avalue = convert(varchar(255), @uvalue)
end
else
begin
if 'DtgSchemaNAME' = @property
begin
exec dbo.dt_generateansiname @avalue output
end
end
end
if exists (select * from dbo.dtproperties
where objectid=@id and property=@property)
begin
--
-- bump the version count for this row as we update it
--
update dbo.dtproperties set value=@avalue, uvalue=@uvalue, lvalue=@lvalue, version=version+1
where objectid=@id and property=@property
end
else
begin
--
-- version count is auto-set to 0 on initial insert
--
insert dbo.dtproperties (property, objectid, value, uvalue, lvalue)
values (@property, @id, @avalue, @uvalue, @lvalue)
end
GO
---------------------------------------------
-- dbo.dt_validateloginparams
create proc dbo.dt_validateloginparams
@vchLoginName varchar(255),
@vchPassword varchar(255)
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId =0
declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'
declare @iPropertyObjectId int
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchSourceSafeINI varchar(255)
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAMethod @iObjectId,
'ValidateLoginParams',
NULL,
@sSourceSafeINI = @vchSourceSafeINI,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword
if @iReturn <> 0 GOTO E_OAError
CleanUp:
return
E_OAError:
exec dbo.dt_displayoaerror @iObjectId, @iReturn
GOTO CleanUp
GO
---------------------------------------------
-- dbo.dt_validateloginparams_u
create proc dbo.dt_validateloginparams_u
@vchLoginName nvarchar(255),
@vchPassword nvarchar(255)
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId =0
declare @VSSGUID nvarchar(100)
select @VSSGUID = N'SQLVersionControl.VCS_SQL'
declare @iPropertyObjectId int
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchSourceSafeINI nvarchar(255)
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
exec @iReturn = sp_OAMethod @iObjectId,
N'ValidateLoginParams',
NULL,
@sSourceSafeINI = @vchSourceSafeINI,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword
if @iReturn <> 0 GOTO E_OAError
CleanUp:
return
E_OAError:
exec dbo.dt_displayoaerror_u @iObjectId, @iReturn
GOTO CleanUp
GO
---------------------------------------------
-- dbo.dt_vcsenabled
create proc dbo.dt_vcsenabled
as
set nocount on
declare @iObjectId int
select @iObjectId = 0
declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'
declare @iReturn int
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 raiserror('', 16, -1) /* Can't Load Helper DLLC */
GO
---------------------------------------------
-- dbo.dt_verstamp006
/*
** This procedure returns the version number of the stored
** procedures used by the Microsoft Visual Database Tools.
** Current version is 7.0.00.
*/
create procedure dbo.dt_verstamp006
as
select 7000
GO
---------------------------------------------
-- dbo.dt_verstamp007
/*
** This procedure returns the version number of the stored
** procedures used by the the Microsoft Visual Database Tools.
** Version is 7.0.05.
*/
create procedure dbo.dt_verstamp007
as
select 7005
GO
---------------------------------------------
-- dbo.dt_whocheckedout
create proc dbo.dt_whocheckedout
@chObjectType char(4),
@vchObjectName varchar(255),
@vchLoginName varchar(255),
@vchPassword varchar(255)
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId =0
declare @VSSGUID varchar(100)
select @VSSGUID = 'SQLVersionControl.VCS_SQL'
declare @iPropertyObjectId int
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchProjectName varchar(255)
declare @vchSourceSafeINI varchar(255)
declare @vchServerName varchar(255)
declare @vchDatabaseName varchar(255)
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSProject', @vchProjectName OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLServer', @vchServerName OUT
exec dbo.dt_getpropertiesbyid_vcs @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName OUT
if @chObjectType = 'PROC'
begin
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
declare @vchReturnValue varchar(255)
select @vchReturnValue = ''
exec @iReturn = sp_OAMethod @iObjectId,
'WhoCheckedOut',
@vchReturnValue OUT,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sObjectName = @vchObjectName,
@sServerName = @vchServerName,
@sDatabaseName = @vchDatabaseName,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword
if @iReturn <> 0 GOTO E_OAError
select @vchReturnValue
end
CleanUp:
return
E_OAError:
exec dbo.dt_displayoaerror @iObjectId, @iReturn
GOTO CleanUp
GO
---------------------------------------------
-- dbo.dt_whocheckedout_u
create proc dbo.dt_whocheckedout_u
@chObjectType char(4),
@vchObjectName nvarchar(255),
@vchLoginName nvarchar(255),
@vchPassword nvarchar(255)
as
set nocount on
declare @iReturn int
declare @iObjectId int
select @iObjectId =0
declare @VSSGUID nvarchar(100)
select @VSSGUID = N'SQLVersionControl.VCS_SQL'
declare @iPropertyObjectId int
select @iPropertyObjectId = (select objectid from dbo.dtproperties where property = 'VCSProjectID')
declare @vchProjectName nvarchar(255)
declare @vchSourceSafeINI nvarchar(255)
declare @vchServerName nvarchar(255)
declare @vchDatabaseName nvarchar(255)
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSProject', @vchProjectName OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSourceSafeINI', @vchSourceSafeINI OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSQLServer', @vchServerName OUT
exec dbo.dt_getpropertiesbyid_vcs_u @iPropertyObjectId, 'VCSSQLDatabase', @vchDatabaseName OUT
if @chObjectType = 'PROC'
begin
exec @iReturn = sp_OACreate @VSSGUID, @iObjectId OUT
if @iReturn <> 0 GOTO E_OAError
declare @vchReturnValue nvarchar(255)
select @vchReturnValue = ''
exec @iReturn = sp_OAMethod @iObjectId,
N'WhoCheckedOut',
@vchReturnValue OUT,
@sProjectName = @vchProjectName,
@sSourceSafeINI = @vchSourceSafeINI,
@sObjectName = @vchObjectName,
@sServerName = @vchServerName,
@sDatabaseName = @vchDatabaseName,
@sLoginName = @vchLoginName,
@sPassword = @vchPassword
if @iReturn <> 0 GOTO E_OAError
select @vchReturnValue
end
CleanUp:
return
E_OAError:
exec dbo.dt_displayoaerror_u @iObjectId, @iReturn
GOTO CleanUp
GO
---------------------------------------------
-- dbo.procActionLogSummarize
create proc procActionLogSummarize as
insert into actionloghistory (Year, Month, Day, Action, SubAction, SumDuration, AvgDuration, MinDuration, MaxDuration, StdevDuration, Count)
select Year, Month, Day, Action, SubAction, SumDuration, AvgDuration, MinDuration, MaxDuration, StdevDuration, Count
from viewactionlogsummary
truncate table actionlog
GO
---------------------------------------------
-- dbo.procAddIdentityColumnToTable
--NOTE: This procedure may fail if there's already an Identity Column in the table.
CREATE proc [dbo].[procAddIdentityColumnToTable](
@SchemaName NVARCHAR(128),
@TableName NVARCHAR(MAX),
@ColumnName NVARCHAR(128),
@DebugMode bit = 0, @Seed NVARCHAR(128) = '1', @Increment nvarchar(128) = '1')
AS
BEGIN
DECLARE @sql varchar(max)
IF dbo.tableColumnExists(@SchemaName, @TableName, @ColumnName)=0 BEGIN
SET @SQL = 'ALTER TABLE ' + (select [dbo].[GetSQLTableExpression](@SchemaName, @TableName))
SET @SQL = @SQL + ' ADD ' + @ColumnName
SET @SQL = @SQL + ' ' + 'int'
SET @SQL = @SQL + ' NOT NULL CONSTRAINT DF_' + replace(@TableName,' ','_') + '_' + @ColumnName
SET @SQL = @SQL + ' IDENTITY(' + @Seed + ',' + @Increment + ');'
SET @SQL = @SQL + ' ALTER TABLE ' + (select [dbo].[GetSQLTableExpression](@SchemaName, @TableName))
SET @SQL = @SQL + ' ADD PRIMARY KEY (' + @ColumnName + ');'
IF @DebugMode = 0 BEGIN
EXEC (@SQL)
PRINT @ColumnName + ' added to ' + @TableName
END ELSE BEGIN
PRINT @SQL
END
END
END
GO
---------------------------------------------
-- dbo.procAddPlansDimensionToAllModelDataConfigs
CREATE proc [dbo].[procAddPlansDimensionToAllModelDataConfigs]
@override bit = 0
as
declare @cnt int
select @cnt = count(*) from emfsubtable
if @cnt = 0 or @override = 1 begin
insert into emfmodeldataconfigdimensionlink (modeldataconfigguid, dimensionguid)
select mdc.modeldataconfigguid, (select listguid from securelist where listtype =2) from emfmodeldataconfig mdc left join emfmodeldataconfigdimensionlink mdcdl on mdc.modeldataconfigguid = mdcdl.modeldataconfigguid and mdcdl.dimensionguid = (select listguid from securelist where listtype =2)
where mdcdl.modeldataconfigguid is null
update emfmodeldataconfigdimensionlink set ismodelkey =1
end
GO
---------------------------------------------
-- dbo.procAddTableDeleteVersionRows
CREATE proc procAddTableDeleteVersionRows
as
insert into tabledeleteversion(tablename) select 'UserUserGroupLink' where 0 = (select count(*) from tabledeleteversion where tablename = 'UserUserGroupLink')
GO
---------------------------------------------
-- dbo.procAddWorkerToActiveController
CREATE PROCEDURE [dbo].[procAddWorkerToActiveController]
@ControllerID as uniqueidentifier,
@WorkerID as uniqueidentifier
AS
IF ((select count(*) from [dbo].[ActiveControllers] where ControllerID=@ControllerID AND WorkerID=@WorkerID) = 0)
BEGIN
INSERT INTO [dbo].[ActiveControllers] (ControllerID,WorkerID,[TimeStamp]) VALUES (@ControllerID, @WorkerID, getdate())
END
GO
---------------------------------------------
-- dbo.procAdjustTemplateSectionCounts
CREATE PROCEDURE [dbo].[procAdjustTemplateSectionCounts] (@templateGUID UNIQUEIDENTIFIER)
AS
BEGIN
IF EXISTS(SELECT TOP 1 1 FROM [dbo].[MEScoreExpansionProfile] WHERE [ChildModelTemplateGUID] = @templateGUID)
BEGIN
-- child profiles do not have their own settings (main template should be used instead)
RETURN; -- do nothing
END
;WITH newSectionCounts AS (
SELECT
TSC.[TemplateGUID],
TSC.[SettingID],
CASE
WHEN (RM.[RecommendedMaxCount] IS NOT NULL) AND ((RM.[RecommendedMaxCount] - TSC.[ActualMaxNumberOfFillins]) BETWEEN 0 AND 10) -- 10 is placeholder
THEN
RM.[RecommendedMaxCount] -- user recommended max section count because fill-ins can fit into it and won't force profile creation
WHEN ((TSC.[ActualSectionCount] - TSC.[ActualMaxNumberOfFillins]) BETWEEN 0 AND 10) -- 10 is placeholder
THEN
TSC.[ActualSectionCount] -- use existing section count because fill-ins can fit into the placeholder
ELSE
TSC.[RecommendedSectionCount] -- use recommended section count because the difference is too high
END AS [NewSectionCountToUse]
FROM [dbo].[viewTemplateSectionCountsWithRecommended] AS TSC
INNER JOIN [dbo].[EMFModelTemplate] AS MT
ON TSC.[TemplateGUID] = MT.[ModelTemplateGUID]
LEFT JOIN [dbo].[MEScoreExpansionRecommendedMaxCount] AS RM
ON RM.[SectionName] = TSC.[SectionName] AND MT.[Name] = 'OB Departmental Budget' -- only 'OB Departmental Budget' supports expansion profiles
)
UPDATE TS
SET TS.[Value] = SC.[NewSectionCountToUse]
FROM [dbo].[TemplateSettings] AS TS
INNER JOIN newSectionCounts AS SC
ON SC.[TemplateGUID] = TS.[TemplateGUID] AND SC.[SettingID] = TS.[SettingID]
WHERE 1=1
AND TS.[TemplateGUID] = @templateGUID
AND TS.[Value] <> SC.[NewSectionCountToUse];
END
GO
---------------------------------------------
-- dbo.procBackupTable
CREATE PROCEDURE [dbo].[procBackupTable]
@tablename [nvarchar](400),
@schema [nvarchar](400),
@where [nvarchar](max) = ''
AS
declare @dbname nvarchar(400) = DB_Name()
declare @username nvarchar(400) = replace(system_user, 'sdt\', '')
declare @count int
declare @BackupName nvarchar(max) = @dbname + '_' + @tablename + '_' + replace(convert(nvarchar(10), getdate(), 102), '.', '') + '_' + @username
begin try
--Check for dupe backup names
select @count = COUNT(*) from TempTableBackups.sys.tables where name like '%' + @BackupName + '%'
set @BackupName = @BackupName + '_' + right('0' + CAST((@count+1) as nvarchar(10)), 2)
--Create bak table
print @BackupName
declare @sql nvarchar(max) = 'select * into TempTableBackups.[dbo].[' + @BackupName + '] from ' + @schema + '.' + @tablename
if (@where != '') set @sql = @sql + ' where ' + @where
exec (@sql)
end try
begin catch
print 'Error: ' + error_message()
end catch
GO
---------------------------------------------
-- dbo.procBatchDeleteOnTable
CREATE PROCEDURE [dbo].[procBatchDeleteOnTable]
(
@FromClause NVARCHAR(MAX),
@WhereClause NVARCHAR(MAX),
@BaseTableAlias NVARCHAR(10) = '',
@BatchSize INT = 100000,
@IsDebugStatement BIT = 0
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @msg NVARCHAR(200);
IF (@FromClause LIKE '%join%' AND @BaseTableAlias = '')
BEGIN
SET @msg = N'@FromClause with JOINs requires a @BaseTableAlias value.';
RAISERROR(@msg, 0, 1) WITH NOWAIT;
RETURN;
END
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'
WHILE (1=1)
BEGIN
DELETE TOP ('+CAST(@BatchSize AS VARCHAR)+') '+@BaseTableAlias+'
FROM '+@FromClause+' WHERE '+@WhereClause+';
IF (@@ROWCOUNT = 0) BREAK;
END';
IF @IsDebugStatement = 1 SET @sql = 'PRINT ''' + @sql + '''';
EXEC (@sql);
END
GO
---------------------------------------------
-- dbo.procCallRestApi
CREATE PROCEDURE [dbo].[procCallRestApi]
@url VARCHAR(2083),
@method VARCHAR(10) = 'get',
@body VARCHAR(MAX) = NULL,
@authorization VARCHAR(100) = NULL,
@responseText VARCHAR(8000) OUTPUT,
@statusCode INT OUTPUT,
@statusText VARCHAR(1000) OUTPUT
AS
BEGIN
DECLARE @object AS INT;
DECLARE @error AS INT;
DECLARE @MessageError VARCHAR(255);
DECLARE @MessageErrorNumber VARCHAR(255);
SET @statusCode = -1;
SET @statusText = 'Unexpected error';
SET @responseText = 'Unexpected error';
SET @MessageError = 'Unexpected error';
EXEC @error = sys.sp_OACreate 'MSXML2.ServerXMLHttp', @object OUT;
IF @error <> 0
BEGIN
SET @MessageError = 'sp_OACreate MSXML2.ServerXMLHttp failed';
GOTO fini;
END;
EXEC @error = sys.sp_OAMethod @object, 'open', NULL, @method, @url, false;
IF @error <> 0
BEGIN
SET @MessageError = 'sp_OAMethod Open failed';
GOTO fini;
END;
EXEC @error = sp_OAMethod
@object,
'setRequestHeader',
NULL,
'Content-Type',
'application/json';
IF @error <> 0
BEGIN
SET @MessageError = 'sp_OAMethod setRequestHeader failed';
GOTO fini;
END;
-- *HACK* to get around the CSRF filter. We will remove this once we change the location of the endpoint
EXEC @error = sp_OAMethod @object, 'setRequestHeader', NULL, 'CSRF', ' ';
IF @error <> 0
BEGIN
SET @MessageError = 'sp_OAMethod setRequestHeader failed';
GOTO fini;
END;
IF @authorization IS NOT NULL
BEGIN
EXEC @error = sp_OAMethod @object, 'setRequestHeader', NULL, 'Authorization', @authorization;
IF @error <> 0
BEGIN
SET @MessageError = 'sp_OAMethod setRequestHeader failed';
GOTO fini;
END;
END;
EXEC @error = sys.sp_OAMethod @object, 'send', NULL, @body;
IF @error <> 0
BEGIN
SET @MessageError = 'sp_OAMethod Send failed';
GOTO fini;
END;
EXEC @error = sys.sp_OAGetProperty @object, 'status', @statusCode OUT;
IF @error <> 0
BEGIN
SET @MessageError = 'sp_OAGetProperty read status failed';
GOTO fini;
END;
EXEC @error = sys.sp_OAGetProperty @object, 'StatusText', @statusText OUT;
IF @error <> 0
BEGIN
SET @MessageError = 'sp_OAGetProperty statusText failed';
GOTO fini;
END;
EXEC @error = sys.sp_OAGetProperty
@object,
'responseText',
@responseText OUT;
IF @error <> 0
BEGIN
SET @MessageError = 'sp_OAGetProperty responseText failed';
GOTO fini;
END;
EXEC sys.sp_OADestroy @object;
PRINT @statusText + ' ' + CAST(@statusCode AS VARCHAR(MAX)) + ' ' + @responseText;
RETURN;
fini:
PRINT @MessageError;
DECLARE @src VARCHAR(1000);
DECLARE @desc VARCHAR(1000);
EXEC @error = sys.sp_OAGetErrorInfo @object, @src OUT, @desc OUT;
IF @error <> 0
BEGIN
SELECT
CONVERT(VARBINARY(4), @error) [error],
@src [Source],
@desc [Description];
END;
EXEC sp_OADestroy @object;
SET @MessageErrorNumber = 'Error : ' + CAST(@error AS VARCHAR) + ' - ' + @MessageError;
SELECT @MessageErrorNumber
--RAISERROR(@MessageErrorNumber, 16, 1);
RETURN;
END;
GO
---------------------------------------------
-- dbo.procCapEMFSetYearFillins
CREATE proc dbo.procCapEMFSetYearFillins
@PLANGUID UniqueIdentifier
,@PHSectionGUID UniqueIdentifier
,@TargetFirstMemberGUID uniqueidentifier
,@NumMembers int
as
declare @FirstMemberGUID uniqueidentifier
set @FirstMemberGUID = dbo.GetModelFirstFillInSection(@planguid, @phsectionguid)
if @FirstMemberGUID = '00000000-0000-0000-0000-000000000000' begin
exec procEMFFillInAddToEndSection @phsectionguid, @targetfirstmemberguid, @planguid
set @firstmemberguid = @targetfirstmemberguid
end
DECLARE @OFFSET Int
SELECT @OFFSET = tfm.DisplayOrder - fm.DisplayOrder
FROM
SecureListMember fm
inner join SecureListMember tfm on fm.ListMemberGUID = @FirstMemberGUID and tfm.ListMemberGUID = @TargetFirstMemberGUID
if @OFFSET is null return
DECLARE @ONEGUID UniqueIdentifier
SET @ONEGUID = '11111111-1111-1111-1111-111111111111'
declare @PHDimGUID uniqueidentifier
SELECT @PHDimGUID = listguid from SecureListMember where ListMemberGUID = @PHSectionGUID
if @PHDimGUID is null return
declare @fidimguid uniqueidentifier
select @fidimguid = fillindimensionguid from SecureList where ListGUID = @PHDimGUID
if @fidimguid is null return
declare @higuid uniqueidentifier
declare @cnt int
exec procLogObjectHistory @PlanGUID, 'Changing base fill-in', 0, @higuid output
--FIX FILLINS
UPDATE EMFFillIn SET FilledInMemberGUID = dbo.GetSecureListOffsetMember(FilledInMemberGUID,@offset)
WHERE
ModelGUID = @PlanGUID
AND PlaceholderMemberGUID IN (SELECT ListMemberGUID FROM SecureListMember WHERE ParentListMemberGUID = @PHSectionGUID)
--DELETE FILLINS PUSHED OFF THE END of possible members
DELETE FROM EMFFillIn WHERE
MODELGUID = @PLANGUID
and FilledInMemberGUID = @ONEGUID
--DELETE FILLINS PUSHED OFF THE END of # of members
DELETE FROM EMFFillIn WHERE ModelGUID = @PlanGUID AND FilledInMemberGUID IN (SELECT GUID FROM dbo.getFillinMembersPastMaxIndex(@PLANGUID, @PHDimGUID, @NumMembers))
--add FILLINS to equal # of members
exec procEMFFillInAdd @planguid, @PHDimGUID, @NumMembers
declare @sql varchar(max)
declare @mdTableName varchar(max)
declare @phDimColumnName varchar(max)
set @phDimColumnName = 'G' + REPLACE(cast(@phdimguid as varchar(36)),'-','_')
set @sql = '
declare @msg varchar(max)
declare @cnt int
declare @planguid uniqueidentifier
set @planguid = ''' + cast(@planguid as varchar(36))+ '''
declare @fidimguid uniqueidentifier
set @fidimguid = ''' + cast(@fidimguid as varchar(36))+ '''
declare @PHSectionGUID uniqueidentifier
set @PHSectionGUID = ''' + cast(@PHSectionGUID as varchar(36))+ '''
declare @oneguid uniqueidentifier
set @oneguid = ''11111111-1111-1111-1111-111111111111''
declare @higuid uniqueidentifier
set @higuid = ''' + cast(@higuid as varchar(36)) + '''
UPDATE zzemfmodeldata_{mdcguidfriendly}
SET
zzemfmodeldata_{mdcguidfriendly}.' + @phDimColumnName + ' = dbo.GetSecureListOffsetMember(zzemfmodeldata_{mdcguidfriendly}.' + @phDimColumnName + ',' + cast(@offset as varchar(4)) + ')
,HISTORYITEMGUID = @higuid
WHERE
MODELGUID = @planguid
--ONLY Update data who was previously assigned to a member that was filling in the section we are updating, altho this could cause a duplicate issue
AND zzemfmodeldata_{mdcguidfriendly}.' + @phDimColumnName + '
IN ( SELECT FI.FilledInMemberGUID FROM EMFFillIn FI WHERE FI.PlaceholderMemberGUID
IN (SELECT ListMemberGUID FROM SecureListMember WHERE ParentListMemberGUID = @PHSectionGUID))
DELETE FROM zzemfmodeldata_{mdcguidfriendly} WHERE VALUE = 0 AND MODELGUID = @PLANGUID and zzemfmodeldata_{mdcguidfriendly}.' + @phDimColumnName + ' = @ONEGUID
DELETE FROM zzemfmodeldata_{mdcguidfriendly} WHERE MODELGUID = @PLANGUID and (zzemfmodeldata_{mdcguidfriendly}.' + @phDimColumnName + ' = @ONEGUID
OR (
not zzemfmodeldata_{mdcguidfriendly}.' + @phDimColumnName + ' in (select filledinmemberguid from emffillin where modelguid = @planguid) --orphan cause not filled in
and
not zzemfmodeldata_{mdcguidfriendly}.' + @phDimColumnName + ' = ''00000000-0000-0000-0000-000000000000'' --not orphaned because emptyguid is ok
)
)
set @cnt = @@rowcount
if @cnt > 0 begin
set @msg = ''Cleared orphaned nonzero cells from {mdcname} while changing Year configuration''
exec procLogObjectHistory @PlanGUID, @msg, @cnt, @higuid
end
'
declare @mtguid uniqueidentifier
select @mtguid = modeltemplateguid from XPlan where PlanGUID = @PLANGUID
--FOR EACH MD TABLE USED BY THIS PLAN
declare @where varchar(max)
set @where = 'where modeldataconfigguid in (select modeldataconfigguid from viewEMFModelTemplateMDCs where modeltemplateguid = ''' + cast(@mtguid as varchar(36)) + ''')
and modeldataconfigguid in (select modeldataconfigguid from emfmodeldataconfigdimensionlink where dimensionguid = ''' + cast(@PHDimGUID as varchar(36)) + ''')
'
exec procEMFRunForManyStructures @sql, @where, 1
GO
---------------------------------------------
-- dbo.procChangeDBSetting
--Author: gforeman
--Branch: EarwigJFS
--Forward
CREATE procedure [dbo].[procChangeDBSetting]
@settingname as nvarchar(128),
@value as nvarchar(4000)
as
if (select count(*) from dbsetting where name = @settingname) = 1 begin
update dbsetting set setting = @value, LastModifiedDate = getdate() where name = @settingname
end else begin
insert into dbsetting (name, setting, LastModifiedDate) select rtrim(ltrim(@settingname)), @value, getdate()
end
GO
---------------------------------------------
-- dbo.procCheckDimensionMemberIntegrity
CREATE PROCEDURE [dbo].[procCheckDimensionMemberIntegrity]
@moreinfo as bit = 0
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @LEVEL int
SET @LEVEL = 0
CREATE TABLE #LISTMEMBERVALIDATION (LISTMEMBERGUID uniqueidentifier, PARENTLISTMEMBERGUID uniqueidentifier, OUTLINELEVEL int, LISTGUID uniqueidentifier)
CREATE TABLE #INVALIDLISTINFO (LISTGUID uniqueidentifier)
INSERT #LISTMEMBERVALIDATION
SELECT
LISTMEMBERGUID,
PARENTLISTMEMBERGUID,
OUTLINELEVEL,
LISTGUID
FROM
SecureListMember
WHERE
PARENTLISTMEMBERGUID = '00000000-0000-0000-0000-000000000000'
INSERT #INVALIDLISTINFO SELECT DISTINCT LISTGUID FROM #LISTMEMBERVALIDATION WHERE OUTLINELEVEL != @LEVEL AND LISTGUID NOT IN(SELECT LISTGUID FROM #INVALIDLISTINFO)
WHILE((SELECT COUNT(*) FROM #LISTMEMBERVALIDATION) > 0) BEGIN
SET @LEVEL = @LEVEL + 1
INSERT #LISTMEMBERVALIDATION
SELECT
LISTMEMBERGUID,
PARENTLISTMEMBERGUID,
OUTLINELEVEL,
LISTGUID
FROM
SecureListMember
WHERE
PARENTLISTMEMBERGUID IN (SELECT LISTMEMBERGUID FROM #LISTMEMBERVALIDATION)
DELETE FROM #LISTMEMBERVALIDATION WHERE PARENTLISTMEMBERGUID NOT IN(SELECT LISTMEMBERGUID FROM #LISTMEMBERVALIDATION)
INSERT #INVALIDLISTINFO SELECT DISTINCT LISTGUID FROM #LISTMEMBERVALIDATION WHERE OUTLINELEVEL != @LEVEL AND LISTGUID NOT IN(SELECT LISTGUID FROM #INVALIDLISTINFO)
END
IF (@moreinfo = 1) BEGIN
SELECT I.*, L.NAME FROM #INVALIDLISTINFO I LEFT JOIN SecureList L ON I.LISTGUID = L.LISTGUID
END ELSE BEGIN
SELECT COUNT(*) FROM #INVALIDLISTINFO
END
DROP TABLE #INVALIDLISTINFO
DROP TABLE #LISTMEMBERVALIDATION
END
GO
---------------------------------------------
-- dbo.procCleanNamespace
CREATE procedure [dbo].[procCleanNamespace]
as
set nocount on
declare @tablename varchar(max)
declare @columnName varchar(max)
--set @tablename = 'DesktopContent'
--set @columnName = 'ContentFullName'
--exec procCleanNamespaceSingle @tablename,@columnName, ' Strata.X.Controls,',' Strata.Jazz.UI,'
GO
---------------------------------------------
-- dbo.procCleanNamespaceSingle
CREATE proc [dbo].[procCleanNamespaceSingle]
@tablename varchar(max)
,@columnname varchar(max)
,@original varchar(max)
,@new varchar(max)
as
set nocount on
declare @sql varchar(max)
set @sql = '
update
' + @tablename + '
set
' + @columnname + ' = REPLACE(cast(' + @columnname + ' as nvarchar(max)),''' + @original + ''',''' + @new + ''')
where
cast(' + @columnname + ' as nvarchar(max)) <> REPLACE(cast(' + @columnname + ' as nvarchar(max)),''' + @original + ''',''' + @new + ''')
'
declare @cnt int
exec( @sql)
set @cnt = @@ROWCOUNT
if @cnt > 0 begin
print cast(@cnt as varchar(max)) + ' changes in ' + @tablename + '.' + @columnname + ' from ' + @original + ' to ' + @new
end
GO
---------------------------------------------
-- dbo.procCleanOrphanFolderItems
CREATE procedure [dbo].[procCleanOrphanFolderItems]
as
update REReport
set FolderGUID = (select rootfolderguid from FolderSet where Type=4)
where FolderGUID not in (select FolderGUID from REReport)
GO
---------------------------------------------
-- dbo.procCleanOrphanFolders
CREATE procedure [dbo].[procCleanOrphanFolders]
as
delete from folder where parentfolderguid not in (select folderguid from folder) and parentfolderguid <> '00000000-0000-0000-0000-000000000000'
GO
---------------------------------------------
-- dbo.procCleanOrphanListMembers
CREATE procedure [dbo].[procCleanOrphanListMembers]
as
delete from securelistmember where parentlistmemberguid not in (select listmemberguid from securelistmember) and parentlistmemberguid <> '00000000-0000-0000-0000-000000000000'
GO
---------------------------------------------
-- dbo.procClearCachedReportsByName
-- =============================================
-- Author: Derek Daniel
-- Create date: 20070501
-- Description: Delete cached reports that contain the word "historical".
-- In Eisenhower production, the "historical" reports are used in the template
-- to bring in actual data. Long term, this will need to be refined to
-- clear cached reports only for specific cubes when those cubes are refreshed
-- with new data. (see change request 11786)
-- =============================================
CREATE PROCEDURE [dbo].[procClearCachedReportsByName]
-- Add the parameters for the stored procedure here
@reportNameContains as nvarchar(256)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DELETE
FROM RECachedReport
WHERE CACHEDREPORTGUID IN
(
SELECT cached.CACHEDREPORTGUID
FROM RECachedReport cached
INNER JOIN REReport rer
ON cached.REPORTGUID = rer.REPORTGUID
WHERE (rer.NAME LIKE @reportNameContains)
)
END
GO
---------------------------------------------
-- dbo.procClearChangeTrackingFile
create proc dbo.procClearChangeTrackingFile
@ModelTemplateGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
AS BEGIN
delete from [dbo].[DataPathFile_ModelTemplate]
where FullPath like '%' + cast(@ModelTemplateGUID as nvarchar(50)) + '%'
and FullPath like '%.ChangeTracking.csv'
END
GO
---------------------------------------------
-- dbo.procClearDataIntSectionObjects
--Forward
create procedure dbo.procClearDataIntSectionObjects(
@SectionID uniqueidentifier
)
AS
BEGIN
declare @name varchar(max);
select @name = Name from dbo.IntDataInterfaceSection where DataInterfaceSectionID = @SectionID
declare @importTable varchar(max);
declare @rejectTable varchar(max);
select @importTable = dbo.GetDataIntSectionAcceptedTableName(@SectionID);
select @rejectTable = dbo.GetDataIntSectionRejectedTableName(@SectionID);
declare @importView varchar(max);
declare @rejectView varchar(max);
select @importView = dbo.GetDataIntSectionAcceptedViewName(@name, @SectionID);
select @rejectView = dbo.GetDataIntSectionRejectedViewName(@name, @SectionID);
declare @schema sysname;
declare @object sysname;
declare @isview bit;
declare crsCursor CURSOR LOCAL FAST_FORWARD FOR
select SchemaName, ObjectName, 0 as [IsView] from ViewSysTables where SchemaName = dbo.DataIntegrationSchema()
and ((ObjectName = @importTable) or (ObjectName = @rejectTable))
union all
select SchemaName, ObjectName, 1 as [IsView] from ViewSysViews where SchemaName = dbo.DataIntegrationSchema()
and ((ObjectName = @importView) or (ObjectName = @rejectView))
open crsCursor;
FETCH NEXT FROM crsCursor into @schema, @object, @isview
WHILE (@@FETCH_STATUS = 0)
BEGIN
if (@isview = 1) begin
print 'Dropping View: [' + @schema + '].[' + @object + ']';
exec procSysDropView @schema, @object;
end
else begin
print 'Dropping Table: [' + @schema + '].[' + @object + ']';
exec procSysDropTable @schema, @object;
end
FETCH NEXT FROM crsCursor into @schema, @object, @isview
END
close crsCursor;
DEALLOCATE crsCursor;
END
RETURN
GO
---------------------------------------------
-- dbo.procClearDataIntSectionObjectsAll
CREATE procedure [dbo].[procClearDataIntSectionObjectsAll](
@IsDebugOnly bit = 1
)
AS
BEGIN
declare @schema sysname;
declare @object sysname;
declare @isview bit;
declare crsCursor CURSOR LOCAL FAST_FORWARD FOR
select SchemaName, ObjectName, 0 as [IsView] from ViewSysTables where SchemaName = dbo.DataIntegrationSchema()
union all
select SchemaName, ObjectName, 1 as [IsView] from ViewSysViews where SchemaName = dbo.DataIntegrationSchema()
open crsCursor;
FETCH NEXT FROM crsCursor into @schema, @object, @isview
WHILE (@@FETCH_STATUS = 0)
BEGIN
if (@isview = 1) begin
print 'Dropping View: [' + @schema + '].[' + @object + ']';
if (@IsDebugOnly = 0) begin
exec procSysDropView @schema, @object;
end
end
else begin
print 'Dropping Table: [' + @schema + '].[' + @object + ']';
if (@IsDebugOnly = 0) begin
exec procSysDropTable @schema, @object;
end
end
FETCH NEXT FROM crsCursor into @schema, @object, @isview
END
close crsCursor;
DEALLOCATE crsCursor;
END
GO
---------------------------------------------
-- dbo.procCollapseTasks
CREATE PROCEDURE [dbo].[procCollapseTasks]
@TaskGUID as uniqueidentifier,
@AssemblyQualifiedName as nvarchar(1024),
@CollapsibleID as nvarchar(MAX),
@DBConnectionGUID as uniqueidentifier
AS
delete from tetask
where
taskguid <> @taskguid
and [status] <> 1
and iscollapsible = 1
and Assemblyqualifiedname = @AssemblyQualifiedName
and collapsibleid = @CollapsibleID
and collapsibleid <> ''
and DBConnectionGUID = @DBConnectionGUID
--dont collapse grouping tasks
and GroupingID = ''
GO
---------------------------------------------
-- dbo.procConvertCSGuidsToTempTable
CREATE PROCEDURE procConvertCSGuidsToTempTable
(@list text,
@delimiter char(1) = N',')
AS
SET NOCOUNT ON
CREATE TABLE #CSGUIDTABLE (listpos int IDENTITY(1, 1) NOT NULL,
guid uniqueidentifier)
DECLARE @pos int,
@textpos int,
@chunklen smallint,
@tmpstr nvarchar(4000),
@leftover nvarchar(4000),
@tmpval uniqueidentifier
SET @textpos = 1
SET @leftover = ''
WHILE @textpos <= datalength(@list) / 2
BEGIN
SET @chunklen = 4000 - datalength(@leftover) / 2
SET @tmpstr = @leftover + substring(@list, @textpos, @chunklen)
SET @textpos = @textpos + @chunklen
SET @pos = charindex(@delimiter, @tmpstr)
WHILE @pos > 0
BEGIN
SET @tmpval = cast(ltrim(rtrim(left(@tmpstr, @pos - 1))) as uniqueidentifier)
INSERT #CSGUIDTABLE (guid) VALUES (@tmpval)
SET @tmpstr = substring(@tmpstr, @pos + 1, len(@tmpstr))
SET @pos = charindex(@delimiter, @tmpstr)
END
SET @leftover = @tmpstr
END
INSERT #CSGUIDTABLE(guid) VALUES (cast(ltrim(rtrim(@leftover)) as uniqueidentifier))
GO
---------------------------------------------
-- dbo.procConvertColumnTypeWithFKReferencingTable
CREATE PROCEDURE [dbo].[procConvertColumnTypeWithFKReferencingTable]
@Schema NVARCHAR(100), -- ex. dss
@TableName NVARCHAR(200), -- ex. DimCPT
@ColumnName NVARCHAR(200), -- ex.CPTID
@Type NVARCHAR(100), -- ex. 'smallint', 'int', 'bigint',
@Debug BIT = 0 -- Set to false by default.
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TimeStamp VARCHAR(30) = CONVERT(VARCHAR, GETDATE(), 121),
@ProcName VARCHAR(100) = OBJECT_NAME(@@PROCID),
@Count INT = 0, @SQL NVARCHAR(4000),
@FKName NVARCHAR(4000),
@FKSchema NVARCHAR(4000),
@FKTableName NVARCHAR(4000),
@FKColumnName NVARCHAR(4000),
@DeleteText NVARCHAR(15),
@UpdateText NVARCHAR(15),
@IDColumnName NVARCHAR(4000),
@FullTableName NVARCHAR (4000) = @Schema + '.' + @TableName,
@FKIsDisabled BIT;
RAISERROR('%s: Starting %s', 0, 1, @TimeStamp, @ProcName) WITH NOWAIT;
SELECT @IDColumnName = name
FROM sys.columns
WHERE object_id = OBJECT_ID(@FullTableName)
AND is_identity = 1;
SET @Count = @@ROWCOUNT;
IF (@Count != 0)
BEGIN
SELECT
fk.name FKName,
OBJECT_SCHEMA_NAME(fk.parent_object_id) FKSchema,
OBJECT_NAME(fk.parent_object_id) FKTableName,
COL_NAME(fc.parent_object_id, fc.parent_column_id) AS FKColumnName,
CASE (fk.delete_referential_action)
WHEN 1 THEN 'CASCADE'
WHEN 2 THEN 'SET NULL'
WHEN 3 THEN 'SET DEFAULT'
ELSE 'NO ACTION'
END DeleteAction,
CASE (fk.update_referential_action)
WHEN 1 THEN 'CASCADE'
WHEN 2 THEN 'SET NULL'
WHEN 3 THEN 'SET DEFAULT'
ELSE 'NO ACTION'
END UpdateAction,
CASE
WHEN fk.is_disabled = 1 OR fk.is_not_trusted = 1 THEN 1
ELSE 0
END AS FKIsDisabled
INTO #ForeignKeys
FROM sys.foreign_keys AS fk
INNER JOIN sys.foreign_key_columns AS fc
ON fk.object_id = fc.constraint_object_id
WHERE OBJECT_SCHEMA_NAME(fk.referenced_object_id) = @Schema
AND OBJECT_NAME(fk.referenced_object_id) = @TableName
AND COL_NAME(fc.referenced_object_id, fc.referenced_column_id) = @IDColumnName;
SET @Count = @@ROWCOUNT;
END
IF (@Count != 0)
BEGIN
-- Drop FK Constraints
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: Found %d foreign key references.', 0, 1, @TimeStamp, @Count) WITH NOWAIT;
DECLARE Drop_FK_Cursor CURSOR FOR
SELECT FKName, FKSchema, FKTableName
FROM #ForeignKeys
ORDER BY FKName;
OPEN Drop_FK_Cursor;
FETCH NEXT FROM Drop_FK_Cursor INTO @FKName, @FKSchema, @FKTableName;
WHILE @@FETCH_STATUS = 0
BEGIN
-- Drop FK constraint
SET @SQL = 'ALTER TABLE [' + @FKSchema + '].[' + @FKTableName + '] DROP CONSTRAINT [' + @FKName + ']';
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: %s', 0, 1, @TimeStamp, @SQL) WITH NOWAIT;
IF (@Debug = 0)
EXEC sp_executesql @SQL;
FETCH NEXT FROM Drop_FK_Cursor INTO @FKName, @FKSchema, @FKTableName;
END
CLOSE Drop_FK_Cursor;
DEALLOCATE Drop_FK_Cursor;
END
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: Changing PK type to %s.', 0, 1, @TimeStamp, @Type) WITH NOWAIT;
-- Change parent table type
SET @SQL = 'EXEC dbo.ConvertIntToBigIntByColumnNameNoCompression @sourceSchema=''' + @Schema + ''', @sourceTable=''' + @TableName + ''', @columnName=''' + @ColumnName + ''', @expectedType=''' + @Type + ''';'
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: %s', 0, 1, @TimeStamp, @SQL) WITH NOWAIT;
IF (@Debug = 0)
EXEC sp_executesql @SQL;
IF (@Count != 0)
BEGIN
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: Recreating foreign keys.', 0, 1, @TimeStamp) WITH NOWAIT;
-- Recreate foreign key constraints with ON DELETE and ON UPDATE actions
DECLARE Create_FK_Cursor CURSOR FOR
SELECT FKName, FKSchema, FKTableName, FKColumnName, DeleteAction, UpdateAction, FKIsDisabled
FROM #ForeignKeys
ORDER BY FKName;
OPEN Create_FK_Cursor;
FETCH NEXT FROM Create_FK_Cursor INTO @FKName, @FKSchema, @FKTableName, @FKColumnName, @DeleteText, @UpdateText, @FKIsDisabled;
WHILE @@FETCH_STATUS = 0
BEGIN
-- Recreate FK constraint with the specific ON DELETE and ON UPDATE actions
SET @SQL = 'ALTER TABLE [' + @FKSchema + '].[' + @FKTableName + ']' + CASE (@FKIsDisabled) WHEN 1 THEN ' WITH NOCHECK' ELSE '' END + ' ADD CONSTRAINT [' + @FKName + '] FOREIGN KEY (' + @FKColumnName + ') REFERENCES [' + @Schema + '].[' + @TableName
+ ']([' + @IDColumnName + ']) ON DELETE ' + @DeleteText + ' ON UPDATE ' + @UpdateText;
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: %s', 0, 1, @TimeStamp, @SQL) WITH NOWAIT;
IF (@Debug = 0)
EXEC sp_executesql @SQL;
FETCH NEXT FROM Create_FK_Cursor INTO @FKName, @FKSchema, @FKTableName, @FKColumnName, @DeleteText, @UpdateText, @FKIsDisabled;
END
CLOSE Create_FK_Cursor;
DEALLOCATE Create_FK_Cursor;
END
END
GO
---------------------------------------------
-- dbo.procConvertFKReferencingTablePKToReferencedTableType
CREATE PROCEDURE dbo.procConvertFKReferencingTablePKToReferencedTableType
@Schema NVARCHAR(100), -- ex. dss
@TableName NVARCHAR(200), -- ex. DimCPT
@ColumnName NVARCHAR(200), -- ex.CPTID
@Type NVARCHAR(100), -- ex. 'smallint', 'int', 'bigint',
@Debug BIT = 0 -- Set to false by default.
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TimeStamp VARCHAR(30) = CONVERT(VARCHAR, GETDATE(), 121),
@ProcName VARCHAR(100) = OBJECT_NAME(@@PROCID),
@Count INT = 0, @SQL NVARCHAR(4000),
@FKName NVARCHAR(4000),
@FKSchema NVARCHAR(4000),
@FKTableName NVARCHAR(4000),
@FKColumnName NVARCHAR(4000),
@DeleteText NVARCHAR(15),
@UpdateText NVARCHAR(15);
RAISERROR('%s: Starting %s', 0, 1, @TimeStamp, @ProcName) WITH NOWAIT;
SELECT
fk.name FKName,
OBJECT_SCHEMA_NAME(fk.parent_object_id) FKSchema,
OBJECT_NAME(fk.parent_object_id) FKTableName,
COL_NAME(fc.parent_object_id, fc.parent_column_id) AS FKColumnName,
CASE (fk.delete_referential_action)
WHEN 1 THEN 'CASCADE'
WHEN 2 THEN 'SET NULL'
WHEN 3 THEN 'SET DEFAULT'
ELSE 'NO ACTION'
END DeleteAction,
CASE (fk.update_referential_action)
WHEN 1 THEN 'CASCADE'
WHEN 2 THEN 'SET NULL'
WHEN 3 THEN 'SET DEFAULT'
ELSE 'NO ACTION'
END UpdateAction
INTO #ForeignKeys
FROM sys.foreign_keys AS fk
INNER JOIN sys.foreign_key_columns AS fc
ON fk.object_id = fc.constraint_object_id
WHERE OBJECT_SCHEMA_NAME(fk.referenced_object_id) = @Schema
AND OBJECT_NAME(fk.referenced_object_id) = @TableName
AND COL_NAME(fc.referenced_object_id, fc.referenced_column_id) = @ColumnName;
SET @Count = @@ROWCOUNT;
IF (@Count != 0)
BEGIN
-- Drop FK Constraints, alter column type.
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: Found %d foreign key references.', 0, 1, @TimeStamp, @Count) WITH NOWAIT;
DECLARE Drop_FK_Cursor CURSOR FOR
SELECT FKName, FKSchema, FKTableName, FKColumnName
FROM #ForeignKeys
ORDER BY FKName;
OPEN Drop_FK_Cursor;
FETCH NEXT FROM Drop_FK_Cursor INTO @FKName, @FKSchema, @FKTableName, @FKColumnName;
WHILE @@FETCH_STATUS = 0
BEGIN
-- Drop FK constraint
SET @SQL = 'ALTER TABLE [' + @FKSchema + '].[' + @FKTableName + '] DROP CONSTRAINT [' + @FKName + ']';
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: %s', 0, 1, @TimeStamp, @SQL) WITH NOWAIT;
IF (@Debug = 0)
EXEC sp_executesql @SQL;
-- Alter column type
SET @SQL = 'EXEC dbo.ConvertIntToBigIntByColumnNameNoCompression @sourceSchema=''' + @FKSchema + ''', @sourceTable=''' + @FKTableName + ''', @columnName=''' + @FKColumnName + ''', @expectedType=''' + @Type + ''';'
IF (@Debug = 0)
EXEC sp_executesql @SQL;
FETCH NEXT FROM Drop_FK_Cursor INTO @FKName, @FKSchema, @FKTableName, @FKColumnName;
END
CLOSE Drop_FK_Cursor;
DEALLOCATE Drop_FK_Cursor;
END
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: Changing PK type to %s.', 0, 1, @TimeStamp, @Type) WITH NOWAIT;
-- Change PK type
SET @SQL = 'EXEC dbo.ConvertIntToBigIntByColumnNameNoCompression @sourceSchema=''' + @Schema + ''', @sourceTable=''' + @TableName + ''', @columnName=''' + @ColumnName + ''', @expectedType=''' + @Type + ''';'
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: %s', 0, 1, @TimeStamp, @SQL) WITH NOWAIT;
IF (@Debug = 0)
EXEC sp_executesql @SQL;
IF (@Count != 0)
BEGIN
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: Recreating foreign keys.', 0, 1, @TimeStamp) WITH NOWAIT;
-- Recreate foreign key constraints with ON DELETE and ON UPDATE actions
DECLARE Create_FK_Cursor CURSOR FOR
SELECT FKName, FKSchema, FKTableName, FKColumnName, DeleteAction, UpdateAction
FROM #ForeignKeys
ORDER BY FKName;
OPEN Create_FK_Cursor;
FETCH NEXT FROM Create_FK_Cursor INTO @FKName, @FKSchema, @FKTableName, @FKColumnName, @DeleteText, @UpdateText;
WHILE @@FETCH_STATUS = 0
BEGIN
-- Recreate FK constraint with the specific ON DELETE and ON UPDATE actions
SET @SQL = 'ALTER TABLE [' + @FKSchema + '].[' + @FKTableName + '] ADD CONSTRAINT [' + @FKName + '] FOREIGN KEY (' + @FKColumnName + ') REFERENCES [' + @Schema + '].[' + @TableName + ']([' + @ColumnName + ']) ON DELETE ' + @DeleteText + ' ON UPDATE ' + @UpdateText;
SET @TimeStamp = CONVERT(VARCHAR, GETDATE(), 121);
RAISERROR('%s: %s', 0, 1, @TimeStamp, @SQL) WITH NOWAIT;
IF (@Debug = 0)
EXEC sp_executesql @SQL;
FETCH NEXT FROM Create_FK_Cursor INTO @FKName, @FKSchema, @FKTableName, @FKColumnName, @DeleteText, @UpdateText;
END
CLOSE Create_FK_Cursor;
DEALLOCATE Create_FK_Cursor;
END
END
GO
---------------------------------------------
-- dbo.procConvertSecureListMemberValues
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
CREATE PROCEDURE [dbo].[procConvertSecureListMemberValues]
@listguid uniqueidentifier,
@valueindex int,
@sourceType int,
@targetType int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
--set @listguid = 'F7CDA86B-F23E-40A1-B081-0B46772591A7'
--set @valueindex = 0
--set @sourceType = 0
--set @targettype = 1
If (@sourceType<>0 AND @sourceType<>1)
BEGIN
Print 'Error: SourceType can only be 0 or 1: Text = 0 or Numeric = 1'
RETURN
END
If (@targetType<>0 AND @targetType<>1)
BEGIN
Print 'Error: targetType can only be 0 or 1: Text = 0 or Numeric = 1'
RETURN
END
If (@sourceType = @targetType)
BEGIN
Print 'Error: sourcetype and targettype shouldn''t be the same. '
RETURN
END
If (@sourceType = 0)
BEGIN
UPDATE dbo.[SecureListMemberValue]
SET
VALUEFLOAT = (
CASE ISNUMERIC(VALUETEXT)
WHEN 1 THEN Cast(VALUETEXT AS float)
ELSE 0
END
),
VALUETEXT = '',
[TYPE] = @targetType
Where LISTGUID = @listguid and VALUEINDEX = @valueindex and [TYPE] = @sourceType
END
If (@sourceType = 1)
BEGIN
UPDATE dbo.SecureListMemberValue
SET
VALUETEXT = VALUEFLOAT,
VALUEFLOAT = 0,
[TYPE] = @targetType
Where LISTGUID = @listguid and VALUEINDEX = @valueindex and TYPE = @sourceType
END
END
GO
---------------------------------------------
-- dbo.procCopyFrameworkDatabaseObjects
create procedure [dbo].[procCopyFrameworkDatabaseObjects]
(
@FrameworkSchema nvarchar(128),
@TargetDatabase nvarchar(512),
@IsIncludeMembers bit,
@IsDebugOnly bit = 0
)
AS
DECLARE @Guid uniqueidentifier
DECLARE @Name nvarchar(128)
--Step 1:
-- COPY ALL COMPOSITES
declare crsComposite CURSOR FAST_FORWARD FOR
select C.CompositeGUID, C.FriendlyName from dbo.ScoreComposite C
left join dbo.ScoreDataTable D1 on D1.DataTableGuid = C.DataTableGUID1
left join dbo.ScoreDataTable D2 on D2.DataTableGuid = C.DatatableGUID2
WHERE D1.SqlSchemaName = @FrameworkSchema OR D2.SqlSchemaName = @FrameworkSchema
open crsComposite;
FETCH NEXT FROM crsComposite into @Guid, @Name
WHILE (@@FETCH_STATUS = 0)
BEGIN
exec dbo.procScoreCopyComposite @Guid, @TargetDatabase, @IsIncludeMembers,@IsDebugOnly
FETCH NEXT FROM crsComposite into @Guid, @Name
END
close crsComposite;
DEALLOCATE crsComposite;
--Step 2:
-- COPY ALL DATATABLES (in case we missed any)
declare crsDataTable CURSOR FAST_FORWARD FOR
select DataTableGUID, FriendlyName from dbo.ScoreDataTable
where SQLSchemaName = @FrameworkSchema
open crsDataTable;
FETCH NEXT FROM crsDataTable into @Guid, @Name
WHILE (@@FETCH_STATUS = 0)
BEGIN
exec dbo.procScoreCopyDataTable @Guid, @TargetDatabase, @IsIncludeMembers,@IsDebugOnly
FETCH NEXT FROM crsDataTable into @Guid, @Name
END
close crsDataTable;
DEALLOCATE crsDataTable;
--Step 3:
-- COPY ALL DIMENSIONS (In case we missed any)
declare crsDimension CURSOR FAST_FORWARD FOR
select DimensionGUID, FriendlyName from dbo.ScoreDimension
where SQLSchemaName = @FrameworkSchema
open crsDimension;
FETCH NEXT FROM crsDimension into @Guid, @Name
WHILE (@@FETCH_STATUS = 0)
BEGIN
exec dbo.procScoreCopyDimension @Guid, @TargetDatabase, @IsIncludeMembers,@IsDebugOnly
FETCH NEXT FROM crsDimension into @Guid, @Name
END
close crsDimension;
DEALLOCATE crsDimension;
GO
---------------------------------------------
-- dbo.procCopySimpleSecurity
CREATE proc [dbo].[procCopySimpleSecurity]
@SourceEntityGUID uniqueidentifier,
@TargetEntityGUID uniqueidentifier,
@CleanTargetEntitySecurity bit = 0
as
if @CleanTargetEntitySecurity = 1
delete from S3SimplePermission where LootID = @TargetEntityGUID
else
delete from S3SimplePermission where LootID = @TargetEntityGUID
and IdentityGUID in (
select IdentityGUID from S3SimplePermission where LootID = @SourceEntityGUID
)
insert into S3SimplePermission
(LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select
@TargetEntityGUID,
ACL.IdentityGUID,
ACL.ReadValue,
ACL.WriteValue,
ACL.SecureValue
from
S3SimplePermission ACL
where
ACL.LootID = @SourceEntityGUID
GO
---------------------------------------------
-- dbo.procCreateTask
CREATE PROCEDURE [dbo].[procCreateTask]
@taskTypeName VARCHAR(1000),
@contextXML NVARCHAR(MAX),
@userName VARCHAR(100) = 'Strata',
@statusCode INT OUTPUT,
@taskSource VARCHAR(500) = 'HangfireController'
AS
BEGIN
DECLARE @baseUrl VARCHAR(200);
SELECT @baseUrl = dbo.GetHangfireApiEndpoint();
DECLARE @url AS VARCHAR(2083) = @baseUrl + '/Jobs';
DECLARE @databaseGUID UNIQUEIDENTIFIER;
/* Old block
EXEC dbo.procSMCGetDatabaseGUID @ReturnVal = @DatabaseGUID OUTPUT;
IF (@databaseGUID IS NULL)
BEGIN
RAISERROR('Unable to determine SMC Database GUID, check to ensure your SMC database settings are correct.', 18, 0);
RETURN;
END;
*/
-- New block
if exists (select 1 from DBSetting where name = 'dbguid_cache')
select @databaseGUID=setting from DBSetting where name = 'dbguid_cache'
else
begin
EXEC dbo.procSMCGetDatabaseGUID @ReturnVal = @databaseGUID OUTPUT;
IF (@databaseGUID IS NULL)
BEGIN
RAISERROR('Unable to determine SMC Database GUID, check to ensure your SMC database settings are correct.', 18, 0);
RETURN;
END
else
exec dbo.procChangeDBSetting 'dbguid_cache', @databaseGUID;
end
-- end new block
DECLARE @auth VARCHAR(100) = 'Hangfire ' + CAST(@databaseGUID AS VARCHAR(36));
DECLARE @body AS VARCHAR(MAX);
SET @body =
(
SELECT @taskTypeName AS TaskName
, @databaseGUID AS DatabaseGuid
, '10101010-1111-0000-1111-101010101010' AS UserGuid
, @userName AS UserName
, @contextXML AS ContextData
, @taskSource AS TaskSource
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
);
DECLARE @statusText NVARCHAR(1000);
DECLARE @responseText VARCHAR(1000);
EXEC dbo.procCallRestApi
@url = @url,
@method = 'POST',
@body = @body,
@authorization = @auth,
@responseText = @responseText OUTPUT,
@statusCode = @statusCode OUTPUT,
@statusText = @statusText OUTPUT;
END;
GO
---------------------------------------------
-- dbo.procCreateTokenForUser
CREATE PROC [dbo].[procCreateTokenForUser]
@username VARCHAR(MAX)
AS
DECLARE @userguid UNIQUEIDENTIFIER
SELECT @userguid = userguid FROM userprofile WHERE username = @username
DECLARE @cnt INT
SELECT @cnt = COUNT(*) FROM CurrentUser WHERE tokenguid = @userguid
IF @cnt = 0 BEGIN
INSERT INTO CurrentUser (tokenguid, userguid, ipaddress, loginstamputc, lastactionstamputc, username)
VALUES (@userguid, @userguid, '127.0.0.1', GETUTCDATE(), '2020-01-01', @username)
END
PRINT @userguid
GO
---------------------------------------------
-- dbo.procCreatezzFactTableIndex
CREATE PROCEDURE [dbo].[procCreatezzFactTableIndex]
@zzTableName nvarchar(256)
AS
DECLARE @sql nvarchar(1204)
SET @sql ='
IF EXISTS (SELECT name FROM sys.indexes WHERE name = ''HistoryItemGUID''
AND object_id = (SELECT object_id(''' + @zzTableName + ''') ) )
BEGIN
CREATE NONCLUSTERED INDEX [HistoryItemGUID] ON ' + @zzTableName + '
(
[HISTORYITEMGUID] ASC
)
WITH DROP_EXISTING
END
ELSE
BEGIN
CREATE NONCLUSTERED INDEX [HistoryItemGUID] ON ' + @zzTableName + '
(
[HISTORYITEMGUID] ASC
)
END
'
EXEC sp_executesql @sql
GO
---------------------------------------------
-- dbo.procCustomScriptGet
CREATE proc [dbo].[procCustomScriptGet]
@customScriptGUID uniqueidentifier,
@encode bit = 0
as
declare @script nvarchar(max)
select @script = ScriptText from CustomScript where CustomScriptGUID = @customScriptGUID
if(@encode = 1) begin
select @script = REPLACE(@script, '''', '''''')
end
if(LEN(@script) > 4000) begin
print '*********************************************************************************************************************'
print 'WARNING: SCRIPT LENGTH EXCEEDS 4000 CHARACTERS - PRINT OUT CONTAINS EXTRA LINE BREAKS THAT MAY BREAK THE SCRIPT'
print '*********************************************************************************************************************'
print ''
end
declare @pos int
set @pos = 0
while(@pos < len(@script)) begin
print substring(@script, @pos, @pos + 4000)
set @pos = @pos + 4000
end
GO
---------------------------------------------
-- dbo.procCustomScriptSet
create proc procCustomScriptSet
@customScriptGUID uniqueidentifier,
@scriptText nvarchar(max)
as
update CustomScript set ScriptText = @scriptText where CustomScriptGUID = @customScriptGUID
GO
---------------------------------------------
-- dbo.procDIRefreshClientField
CREATE PROCEDURE [dbo].[procDIRefreshClientField]
(
@ConfigID uniqueidentifier
)
AS
begin
update isfd
set isfd.ClientField = dbo.intGetTransformationSourceField(isfd.SourceColumnId)
from IntDataInterfaceField f1
join IntDataInterfaceSection dis on dis.DataInterfaceSectionID=f1.DataInterfaceSectionID
join IntDataInterface dif on dis.DataInterfaceID=dif.DataInterfaceID
join IntConfig ic on ic.DataInterfaceID=dif.DataInterfaceID and ic.IsHidden = 0
join IntTransformation it on it.ConfigID=ic.ConfigID
cross apply intGetTransformationSourceFileList(it.TransformationID) tsfl
join IntSourceFile isf on isf.SourceFileID = tsfl.SourceFileID
join IntDataInterfaceMap idm on f1.DataInterfaceFieldID=idm.DataInterfaceFieldID
join IntSourceField isfd on isfd.DataSourceID=it.TransformationID and idm.SourceColumnID=isfd.SourceColumnID
where f1.IsHidden = 0 and ic.ConfigID=@ConfigID
end
GO
---------------------------------------------
-- dbo.procDashboardInvalidateCacheByAttributeGUID
/*************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2022-01-28 HV JAZZ-29025 Fiscal Time Period - Count from Current Month
*************************************************************/
CREATE PROCEDURE [dbo].[procDashboardInvalidateCacheByAttributeGUID]
@attributeGUID uniqueidentifier
AS
DELETE c FROM dbo.DashboardWidgetCache c
INNER JOIN (
SELECT DISTINCT w.DashboardWidgetGUID
FROM dbo.DashboardWidget w
INNER JOIN dbo.DataView dv on dv.dataviewguid = w.datasourceguid
INNER JOIN dbo.RESqlReportRegisteredDimension rd ON rd.DataViewGUID=dv.DataViewGUID
INNER JOIN dbo.RESQLReportRegisteredAttribute a ON rd.RegisteredDimensionGUID = a.RegisteredDimensionGUID
WHERE a.AttributeGuid = @attributeGuid) t
ON t.DashboardWidgetGUID = c.DashboardWidgetGUID
GO
---------------------------------------------
-- dbo.procDashboardInvalidateCacheByFrameworkID
CREATE PROC dbo.procDashboardInvalidateCacheByFrameworkID
@frameworkId int
AS
delete from DashboardWidgetCache
where DesktopTemplateGUID in (
select DesktopTemplateGUID
from DashboardWidget w
inner join dataview dv on dv.dataviewguid = w.datasourceguid
inner join fw.DimFramework f on dv.FrameworkGUID = f.MemberGUID
where f.FrameworkID = @frameworkId)
GO
---------------------------------------------
-- dbo.procDashboardInvalidateCacheByReportGUID
CREATE PROC dbo.procDashboardInvalidateCacheByReportGUID
@reportGUID uniqueidentifier
AS
-- remove all cache for dashboards that contain this report
delete from DashboardWidgetCache
where DesktopTemplateGUID in (
select DesktopTemplateGUID
from DashboardWidget
where WidgetJSON like '%' + cast(@reportGUID as nvarchar(36)) + '%'
)
GO
---------------------------------------------
-- dbo.procDashboardInvalidateCacheForCube
CREATE PROC dbo.procDashboardInvalidateCacheForCube
AS
delete from DashboardWidgetCache
where DesktopTemplateGUID in (
select DesktopTemplateGUID
from DashboardWidget w inner join EMFCubeStub c on w.DataSourceGUID = c.CubeGUID)
GO
---------------------------------------------
-- dbo.procDataPathCopyFile
--select * from datapathfile
CREATE proc [dbo].[procDataPathCopyFile]
@originalFileGUID uniqueidentifier,
@newfullpath varchar(max)
as
delete from DataPathFile where FullPath = @newfullpath
insert into DataPathFile(FileGUID,FullPath,FileName,CreationTime,LastModifiedTime,Data) select NEWID() as fileguid, @newfullpath, '', GETDATE(), GETDATE(), data from DataPathFile where FileGUID = @originalFileguid
delete from DataPathFile_History where FullPath = @newfullpath
insert into DataPathFile_History(FileGUID,FullPath,FileName,CreationTime,LastModifiedTime,Data) select NEWID() as fileguid, @newfullpath, '', GETDATE(), GETDATE(), data from DataPathFile_History where FileGUID = @originalFileguid
delete from DataPathFile_Improv where FullPath = @newfullpath
insert into DataPathFile_Improv(FileGUID,FullPath,FileName,CreationTime,LastModifiedTime,Data) select NEWID() as fileguid, @newfullpath, '', GETDATE(), GETDATE(), data from DataPathFile_Improv where FileGUID = @originalFileguid
delete from DataPathFile_ModelTemplate where FullPath = @newfullpath
insert into DataPathFile_ModelTemplate(FileGUID,FullPath,FileName,CreationTime,LastModifiedTime,Data) select NEWID() as fileguid, @newfullpath, '', GETDATE(), GETDATE(), data from DataPathFile_ModelTemplate where FileGUID = @originalFileguid
delete from DataPathFile_Reporting where FullPath = @newfullpath
insert into DataPathFile_Reporting(FileGUID,FullPath,FileName,CreationTime,LastModifiedTime,Data) select NEWID() as fileguid, @newfullpath, '', GETDATE(), GETDATE(), data from DataPathFile_Reporting where FileGUID = @originalFileguid
GO
---------------------------------------------
-- dbo.procDataPathDeleteStale
CREATE proc [dbo].[procDataPathDeleteStale] as
delete dpf
from
DataPathFile_Improv dpf
where
FullPath like 'ImprovWorkbook%'
and not exists (
select 1
from
XPlan obj
where
cast(obj.PlanGUID as varchar(36)) = SUBSTRING(dpf.FullPath,LEN('ImprovWorkbook')+1,36)
)
delete dpf
from
DataPathFile_History dpf
where
FullPath like 'History\%'
and not exists (
select 1
from
HistoryItem hi
where
cast(hi.HISTORYITEMGUID as varchar(36)) = SUBSTRING(dpf.FullPath,LEN('History\')+1,36)
)
delete dpf
from
DataPathFile_ModelTemplate dpf
where
FullPath like 'ModelTemplateHistory\%'
and not exists (
select 1
from
EMFModelTemplate mt
where
cast(mt.ModelTemplateGUID as varchar(36)) = SUBSTRING(dpf.FullPath,LEN('ModelTemplateHistory\')+1,36)
)
delete dpf
from
DataPathFile_ModelTemplate dpf
where
FullPath like 'ModelTemplates\%'
and not exists (
select 1
from
EMFModelTemplate mt
where
cast(mt.ModelTemplateGUID as varchar(36)) = SUBSTRING(dpf.FullPath,LEN('ModelTemplates\')+1,36)
)
GO
---------------------------------------------
-- dbo.procDataPathObtainLock
CREATE procedure [dbo].[procDataPathObtainLock] (
@FullPath varchar(max),
@MaxLockSeconds int = 30, -- by default, you can only hold a lock for 30 seconds before stolen
@OwnerID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
)
AS
BEGIN
declare @ObtainedLocked bit;
if(@FullPath like 'History%') begin
update DataPathFile_History WITH (updlock, rowlock, readpast) set IsLocked = 1, LockTime = GETDATE(), LockOwner = @OwnerID
where
(FullPath = @FullPath AND IsLocked = 0)
OR
(FullPath = @FullPath AND IsLocked = 1 AND ABS(DATEDIFF(second, getdate(), LockTime)) > @MaxLockSeconds)
OR
(FullPath = @FullPath AND IsLocked = 1 AND LockOwner = @OwnerID); --same owner relocking
end else begin
if(@FullPath like 'Improv%') begin
update DataPathFile_Improv WITH (updlock, rowlock, readpast) set IsLocked = 1, LockTime = GETDATE() , LockOwner = @OwnerID
where
(FullPath = @FullPath AND IsLocked = 0)
OR
(FullPath = @FullPath AND IsLocked = 1 AND ABS(DATEDIFF(second, getdate(), LockTime)) > @MaxLockSeconds)
OR
(FullPath = @FullPath AND IsLocked = 1 AND LockOwner = @OwnerID); --same owner relocking
end else begin
if(@FullPath like 'ModelTemplate%') begin
update DataPathFile_ModelTemplate WITH (updlock, rowlock, readpast) set IsLocked = 1, LockTime = GETDATE() , LockOwner = @OwnerID
where
(FullPath = @FullPath AND IsLocked = 0)
OR
(FullPath = @FullPath AND IsLocked = 1 AND ABS(DATEDIFF(second, getdate(), LockTime)) > @MaxLockSeconds)
OR
(FullPath = @FullPath AND IsLocked = 1 AND LockOwner = @OwnerID); --same owner relocking
end else begin
if(@FullPath like 'Reporting%') begin
update DataPathFile_Reporting WITH (updlock, rowlock, readpast) set IsLocked = 1, LockTime = GETDATE(), LockOwner = @OwnerID
where
(FullPath = @FullPath AND IsLocked = 0)
OR
(FullPath = @FullPath AND IsLocked = 1 AND ABS(DATEDIFF(second, getdate(), LockTime)) > @MaxLockSeconds)
OR
(FullPath = @FullPath AND IsLocked = 1 AND LockOwner = @OwnerID); --same owner relocking
end else begin
update DataPathFile WITH (updlock, rowlock, readpast) set IsLocked = 1, LockTime = GETDATE(), LockOwner = @OwnerID
where
(FullPath = @FullPath AND IsLocked = 0)
OR
(FullPath = @FullPath AND IsLocked = 1 AND ABS(DATEDIFF(second, getdate(), LockTime)) > @MaxLockSeconds)
OR
(FullPath = @FullPath AND IsLocked = 1 AND LockOwner = @OwnerID); --same owner relocking
end
end
end
end
declare @RowsAffected int;
select @RowsAffected = @@ROWCOUNT;
if (@RowsAffected = 1)
begin
set @ObtainedLocked = 1
end
else
begin
set @ObtainedLocked = 0
end
select @ObtainedLocked;
END
GO
---------------------------------------------
-- dbo.procDataPathReleaseLock
CREATE procedure [dbo].[procDataPathReleaseLock] (
@FullPath varchar(max)
)
AS
BEGIN
update DataPathFile WITH (updlock, rowlock, readpast) set IsLocked = 0, LockOwner = dbo.ZeroGUID() where FullPath = @FullPath AND IsLocked = 1;
if(@FullPath like 'History%') begin update DataPathFile_History WITH (updlock, rowlock, readpast) set IsLocked = 0, LockOwner = dbo.ZeroGUID() where FullPath = @FullPath AND IsLocked = 1 end;
if(@FullPath like 'Improv%') begin update DataPathFile_Improv WITH (updlock, rowlock, readpast) set IsLocked = 0, LockOwner = dbo.ZeroGUID() where FullPath = @FullPath AND IsLocked = 1 end;
if(@FullPath like 'ModelTemplate%') begin update DataPathFile_ModelTemplate WITH (updlock, rowlock, readpast) set IsLocked = 0, LockOwner = dbo.ZeroGUID() where FullPath = @FullPath AND IsLocked = 1 end;
if(@FullPath like 'Reporting%') begin update DataPathFile_Reporting WITH (updlock, rowlock, readpast) set IsLocked = 0, LockOwner = dbo.ZeroGUID() where FullPath = @FullPath AND IsLocked = 1 end;
END
GO
---------------------------------------------
-- dbo.procDeactivateInactiveUsers
CREATE PROC [dbo].[procDeactivateInactiveUsers]
AS
SET NOCOUNT ON
IF (EXISTS(SELECT 1 FROM [dbo].[DBSetting] WHERE Name = 'SECURITY_USERDEACTIVATEDAYS' AND Setting != '-1'))
BEGIN
DECLARE @expiredays INT
SELECT @expiredays = CAST(Setting AS INT) FROM [dbo].[DBSetting] WHERE Name = 'SECURITY_USERDEACTIVATEDAYS'
UPDATE u SET u.IsDisabled = 1
FROM [dbo].[UserProfile] u
WHERE @expiredays < DATEDIFF(day, ISNULL((SELECT MAX(LoginStamp) FROM [dbo].[LoginHistory] h WHERE h.UserGUID = u.UserGUID), u.LastChangedPasswordUtc AT TIME ZONE 'UTC' AT TIME ZONE 'Central Standard Time'), GETDATE())
END
GO
---------------------------------------------
-- dbo.procDeleteUpdatedClinicalIndicatorEncounters
CREATE PROCEDURE [dbo].[procDeleteUpdatedClinicalIndicatorEncounters]
@transactionguid uniqueidentifier
AS
CREATE TABLE #ClinicalIndicatorEncounters (EncounterID bigint primary key NOT NULL DEFAULT (0))
INSERT INTO #ClinicalIndicatorEncounters (EncounterID)
SELECT EncounterID
FROM [clientdss].[FactPatientEncounterSummary]
WHERE HistoryItemGUID = @transactionguid
CREATE TABLE #Deleted (RowID int);
WHILE (1 = 1)
BEGIN
DELETE top (5000) dss.FactPatientEncounterClinicalIndicator
OUTPUT deleted.RowID into #Deleted
FROM dss.FactPatientEncounterClinicalIndicator
WHERE EncounterID IN (SELECT CIE.EncounterID FROM #ClinicalIndicatorEncounters CIE)
if ((SELECT COUNT(*) FROM #Deleted) = 0)
BEGIN
BREAK;
END
delete from #Deleted;
END--ENDWHILE
DROP TABLE #Deleted;
RETURN
GO
---------------------------------------------
-- dbo.procDemoAssignRandomAuthor
create proc procDemoAssignRandomAuthor
@lootgroupid nvarchar(128)
as
declare @randomUserGUID uniqueidentifier
declare @authorRoleID smallint
select @authorRoleID = roleid from userrole where type = 1
select top 1 @randomuserGUID= userguid from userprofile
where authid = ''
and namelast not like 'zstrata%'
order by newid()
exec dbo.[procS3ClearAssignmentByLootGroupRole] @lootgroupid, @authorRoleID
exec dbo.procS3AssignIdentityToSpecialRole @randomUserGUID, 1, @lootgroupid
GO
---------------------------------------------
-- dbo.procDepreciate
CREATE proc procDepreciate
@amount money
,@amountYear int
,@usefulLife int
,@inserviceYear int
,@inserviceMonth int
as
create table #out (year int, amount money)
if @inserviceYear < @amountYear set @inserviceYear = @amountYear
declare @resultYear int
set @resultYear = @inserviceYear
while @resultYear <= @inserviceYear + @usefulLife begin
insert into #out (year, amount)
values (@resultYear, dbo.GetDepreciationPart(@amount,@amountYear,@usefulLife, @inserviceYear, @inserviceMonth, @resultYear))
set @resultYear = @resultYear + 1
end
select * from #out
GO
---------------------------------------------
-- dbo.procDirectoryAddEntry
CREATE PROCEDURE dbo.procDirectoryAddEntry
(
@planGUID AS UNIQUEIDENTIFIER,
@planTypeGUID AS UNIQUEIDENTIFIER,
@schemaName AS NVARCHAR(64) = 'data'
)
AS
--this procedure is obsolete given FE20, but still exists for backwards compatibility
RETURN
GO
---------------------------------------------
-- dbo.procDirectoryCacheClean
CREATE proc procDirectoryCacheClean
@clean bit = 0
as
declare @name varchar(128)
--old cache tables
declare crsCache cursor for select name from sys.tables where name like 'DirectoryCache%'
open crsCache
fetch next from crsCache into @name
while(@@FETCH_STATUS = 0) begin
if(@clean = 0) begin
print 'data.' + @name
end else begin
declare @sql varchar(4000)
set @sql = 'drop table data.' + @name
exec(@sql)
end
fetch next from crsCache into @name
end
close crsCache
deallocate crsCache
--old cache views
declare crsView cursor for select name from sys.views where name like 'viewDirectoryCache_%'
open crsView
fetch next from crsView into @name
while(@@FETCH_STATUS = 0) begin
if((select count(*) from PlanType where replace(replace(replace(replace(REPLACE(Name, ' ', ''), '.', ''), '(', ''), ')', ''), '-', '') = REPLACE(@name, 'viewDirectoryCache_', '')) = 0) begin
if(@clean = 0) begin
print 'data.' + @name
end else begin
declare @sql2 varchar(4000)
set @sql2 = 'drop view data.' + @name
exec(@sql2)
end
end
fetch next from crsView into @name
end
close crsView
deallocate crsView
GO
---------------------------------------------
-- dbo.procDirectoryRefreshField
CREATE PROCEDURE [dbo].[procDirectoryRefreshField]
@planTypeGUID as uniqueidentifier,
@formFieldGUID uniqueidentifier,
@isForRebuild bit = 0,
@debug bit = 0,
@entityexpression nvarchar(max) = ''
AS
--this procedure is obsolete given FE20, but still exists for backwards compatibility
RETURN
GO
---------------------------------------------
-- dbo.procDirectoryRefreshFieldAll
CREATE PROCEDURE [dbo].[procDirectoryRefreshFieldAll]
@planTypeGUID as uniqueidentifier,
@isForRebuild bit = 0,
@debug bit = 0,
@entityexpression nvarchar(max) = ''
AS
--this procedure is obsolete given FE20, but still exists for backwards compatibility
RETURN
GO
---------------------------------------------
-- dbo.procDropCLRAssembly
CREATE PROCEDURE dbo.procDropCLRAssembly
@asmname NVARCHAR(1000)
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
--First we need to drop all the Wrapper objects that are dependent on the Assembly which include CLR { Aggregates, Scalars, Stored Procedures, Table Value Functions & Triggers }
DECLARE @d_sql NVARCHAR(MAX);
DECLARE @drop_type VARCHAR(100)
-- CURSOR VARIABLES --
DECLARE @wname NVARCHAR(1000);
DECLARE @wtype NVARCHAR(1000);
-- CURSOR VARIABLES (END) --
DECLARE dCursor CURSOR FAST_FORWARD FOR
SELECT '[' + ss.name + '].[' + o.name + ']' AS wraper_name, o.type
FROM sys.assembly_modules am
JOIN sys.objects o ON am.object_id = o.object_id
JOIN sys.assemblies sas ON sas.assembly_id = am.assembly_id
JOIN sys.schemas ss ON ss.schema_id = o.schema_id
WHERE sas.name = @asmname
OPEN dCursor
FETCH NEXT FROM dCursor INTO @wname, @wtype
WHILE @@FETCH_STATUS = 0
BEGIN
SET @drop_type = '';
IF @wtype IN ('PC', 'P')
SELECT @drop_type = 'PROCEDURE'
IF @wtype IN ('FN', 'FS', 'FT', 'IF', 'TF')
SELECT @drop_type = 'FUNCTION'
IF @wtype = 'AF'
SELECT @drop_type = 'AGGREGATE'
IF @wtype = 'U'
SELECT @drop_type = 'TABLE'
IF @wtype = 'V'
SELECT @drop_type = 'VIEW'
IF @drop_type <> ''
BEGIN
SET @d_sql = 'DROP '+ @drop_type + ' ' + @wname
EXEC(@d_sql);
END
FETCH NEXT FROM dCursor INTO @wname, @wtype
END
CLOSE dCursor
DEALLOCATE dCursor
--Finally drop the Assembly
SET @d_sql = N'IF EXISTS (SELECT * FROM sys.assemblies asms WHERE asms.name = ''' + @asmname + ''' AND is_user_defined = 1) DROP ASSEMBLY ['+ @asmname +']'
EXEC(@d_sql)
END
GO
---------------------------------------------
-- dbo.procDropIndexesByQuery
create proc [dbo].procDropIndexesByQuery
@tablename sysname,
@query nvarchar(max)
as
-- name: sp_drop_constraints
-- author: douglas bass
-- date: 06/19/2000
-- sp_drop_constraints will drop all constraints on the specified table,
-- including CHECK, FOREIGN KEY, PRIMARY KEY, UNIQUE, and DEFAULT constraints.
-- Compile it in your master database and use it from any user database.
set nocount on
declare @constname sysname,
@cmd varchar(1024)
declare curs_constraints cursor LOCAL FAST_FORWARD for
select name
from sys.indexes
where
type = 2
and object_id = object_id(@tablename)
and name like @query
open curs_constraints
fetch next from curs_constraints into @constname
while (@@fetch_status = 0)
begin
select @cmd = 'DROP INDEX ' + @tablename + '.' + @constname
--print @cmd
exec(@cmd)
fetch next from curs_constraints into @constname
end
close curs_constraints
deallocate curs_constraints
return 0
GO
---------------------------------------------
-- dbo.procDropzzFactTableIndex
CREATE PROCEDURE [dbo].[procDropzzFactTableIndex]
@zzTableName nvarchar(256)
AS
DECLARE @sql nvarchar(1204)
SET @sql ='
IF EXISTS (SELECT name FROM sys.indexes WHERE name = ''HistoryItemGUID''
AND object_id = (SELECT object_id(''' + @zzTableName + ''') ) )
BEGIN
DROP INDEX [HistoryItemGUID] ON ' + @zzTableName + ' WITH (ONLINE = OFF)
END
'
Exec sp_executesql @sql
GO
---------------------------------------------
-- dbo.procEMFBlastFormulas
CREATE proc procEMFBlastFormulas
@modelguid uniqueidentifier
,@measureguid uniqueidentifier
as
/*
exec procEMFBlastFormulas '00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000'
*/
declare @mtguid uniqueidentifier
select @mtguid = modeltemplateguid from xplan where planguid = @modelguid
declare @mdcguid uniqueidentifier
declare @zztable varchar(max)
declare @sql varchar(max)
DECLARE mdc CURSOR LOCAL FAST_FORWARD
FOR
select
distinct
case when parentmodeldataconfigguid = '00000000-0000-0000-0000-000000000000' then st.modeldataconfigguid
else parentmodeldataconfigguid
end as ModelDataConfigGUID
from
emfmodeltemplatelinksource ls
left join emfsubtable st on ls.parentsubtableguid = st.subtableguid
inner join emfmodeldatalink mls on ls.linksourceguid = mls.linksourceguid
where
modeltemplateguid = @mtguid
and mls.modelguid = mls.parentmodelguid --only self linked are valid
OPEN mdc
FETCH NEXT FROM mdc INTO @mdcguid
WHILE @@FETCH_STATUS = 0
BEGIN
set @zztable = 'zzEMFModelData_' + replace(cast(@mdcguid as varchar(36)),'-','_')
set @sql = 'UPDATE ' + @zztable + ' SET Formula = cast(Value as money), StringValue = cast(value as money) WHERE MeasureGUID = ''' + cast(@measureguid as varchar(36)) + ''' AND (formula <> cast(value as money) or stringvalue <> cast(value as money)) AND ModelGUID = ''' + cast(@modelguid as varchar(36)) + ''''
exec(@sql)
FETCH NEXT FROM mdc INTO @mdcguid
END
CLOSE mdc
DEALLOCATE mdc
GO
---------------------------------------------
-- dbo.procEMFClearOrphanedPlaceholderLabelMappings
create proc procEMFClearOrphanedPlaceholderLabelMappings as
delete plm from EMFModelTemplatePlaceholderLabelMapping plm
where not plm.PlaceholderMemberGUID in (select listmemberguid from SecureListMember slm where slm.ListGUID = plm.PlaceholderDimensionGUID)
GO
---------------------------------------------
-- dbo.procEMFCreatePlanEmptyFillins
create proc procEMFCreatePlanEmptyFillins as
insert into emffillin (modelguid, placeholdermemberguid, filledinmemberguid,issetbyuser)
select planguid, '00000000-0000-0000-0000-000000000000', '00000000-0000-0000-0000-000000000000', 1 from xplan
where not exists
(select 1 from emffillin where emffillin.modelguid = planguid and placeholdermemberguid = '00000000-0000-0000-0000-000000000000' and filledinmemberguid = '00000000-0000-0000-0000-000000000000')
GO
---------------------------------------------
-- dbo.procEMFFillInAdd
--CREATE FUNCTION [dbo].[GetFillinMembersMissing]
-- (@modelGUID uniqueidentifier, @placeholderDimensionGUID uniqueidentifier, @maxIndex int)
--RETURNS
-- @fillInMemberGUIDS TABLE ( guid uniqueidentifier)
--AS
--BEGIN
CREATE proc [dbo].[procEMFFillInAdd]
@modelGUID uniqueidentifier
,@placeholderDimensionGUID as uniqueidentifier --ph
,@maxIndex int
as
/*
test 2
set @placeholderDimensionGUID = '17FEAA4B-A2A2-4353-B081-03E3DFB5CB77'
set @modelGUID = '9C5BFBD1-4DF4-4223-B4C3-D013809261AC'
declare @maxIndex int
set @maxIndex = 4
--declare @minIndex int
*/
--delete fillins past index @maxIndex
declare @firstMemberGUID uniqueidentifier
select @firstMemberGUID = dbo.getModelFirstFillIn(@modelGUID, @placeholderDimensionGUID)
--get out of here if we dont have a base fillin, we cant know where to start
-- starting at the beginning is kind of dangerous
if @firstMemberGUID = '00000000-0000-0000-0000-000000000000' return
select
--modelguid,dbo.getplanname(modelguid),
row_number() over (order by slm.sortorderfullpath) as RowNum,
listmemberguid
into #members
from
securelistmember slm
where
exists(
select 1
from
securelistmember slm2
where
slm2.listguid = slm.listguid
and slm2.parentlistmemberguid = slm.parentlistmemberguid
and slm2.listmemberguid = @firstMemberGUID
)
declare @firstRowNum int
select @firstRowNum = rownum from #members where listmemberguid = @firstmemberguid
DECLARE fillins CURSOR LOCAL FAST_FORWARD FOR
select
listmemberguid as FillInGUID
from
#members
where
rownum between @firstRowNum and (@firstRowNum + @maxIndex -1)
and not exists (
select 1
from
emffillin
where
filledinmemberguid = listmemberguid
and modelguid = @modelguid
)
order by rownum
declare @fillInMemberGUID uniqueidentifier
OPEN fillins
FETCH NEXT FROM fillins INTO @fillInMemberGUID
WHILE @@FETCH_STATUS = 0
BEGIN
--exec procEMFFillInSetByIndex @PHDimensionGUID, @ParentPHMemberGUID, @index, @FillInGUID, @ModelGUID
print @fillInMemberGUID
exec procEMFFillInAddToEnd @PlaceholderDimensionGUID, @FillInMemberGUID, @ModelGUID
FETCH NEXT FROM fillins INTO @fillInMemberGUID
END
CLOSE fillins
deallocate fillins
--exec procEMFFillInAddToEnd
drop table #members
--PlaceholderMemberGUID in
-- ( select listmemberguid
-- from securelist
-- where listguid = @placeholderDimensionGUID
-- )
--and ModelGUID = @modelGUID
--) FillIns
-- WHERE
-- RowNum > @MaxIndex
-- RETURN
--END
--GO
GO
---------------------------------------------
-- dbo.procEMFFillInAddToEnd
CREATE proc [dbo].[procEMFFillInAddToEnd]
@PlaceholderDimensionGUID uniqueidentifier
--,@PlaceholderParentMemberGUID uniqueidentifier isnt going to be used on a PH dimension with multi sections yet
,@FillInMemberGUID uniqueidentifier
,@ModelGUID uniqueidentifier
as
/*
declare @PHDimGUID uniqueidentifier
declare @PlaceholderIndex int
declare @FillInMemberGUID uniqueidentifier
declare @ModelGUID uniqueidentifier
set @modelguid = '7594B42B-AF3D-43B6-8A56-6CA6F84F836B' --scott 2.0 1
set @PHDimGUID = '1A220CA5-182D-4EA8-AE70-1E6C1E7F8D2D' --staff ph
set @placeholderindex = 2
set @fillinmemberguid = '37D0CF18-435E-4CEC-9C6F-1D56C6276883' --staff: tushar
*/
declare @placeholdermemberguid uniqueidentifier
declare @placeholderindex int
select @placeholderIndex = dbo.GetModelLastFillInIndex(@ModelGUID,@PlaceholderDimensionGUID) --next index
set @placeholderIndex= @placeholderIndex + 1
select
@placeholdermemberguid = placeholdermemberguid
from
(
select
row_number() over (order by PH.SortOrder) - 1 as PlaceholderIndex, --zero based
PH.PlaceholderMemberGUID
from
viewplaceholders PH
where
PH.PlaceholderDimensionGUID = @PlaceholderDimensionGUID
--and PH.PlaceholderParentMemberGUID = @PlaceholderParentMemberGUID
) phnum
where
PlaceholderIndex = @placeholderindex
if @placeholdermemberguid is null return
exec procEMFFillInSet @modelguid, @placeholdermemberguid, @fillinmemberguid
GO
---------------------------------------------
-- dbo.procEMFFillInAddToEndSection
CREATE proc [dbo].[procEMFFillInAddToEndSection]
@SectionGUID uniqueidentifier --isnt going to be used on a PH dimension with multi sections yet
,@FillInMemberGUID uniqueidentifier
,@ModelGUID uniqueidentifier
as
/*
declare @PHDimGUID uniqueidentifier
declare @PlaceholderIndex int
declare @FillInMemberGUID uniqueidentifier
declare @ModelGUID uniqueidentifier
set @modelguid = '7594B42B-AF3D-43B6-8A56-6CA6F84F836B' --scott 2.0 1
set @PHDimGUID = '1A220CA5-182D-4EA8-AE70-1E6C1E7F8D2D' --staff ph
set @placeholderindex = 2
set @fillinmemberguid = '37D0CF18-435E-4CEC-9C6F-1D56C6276883' --staff: tushar
*/
declare @placeholdermemberguid uniqueidentifier
declare @placeholderindex int
select @placeholderIndex = dbo.GetModelLastFillInIndexSection(@ModelGUID,@SectionGUID) --next index
set @placeholderIndex= @placeholderIndex + 1
select
@placeholdermemberguid = placeholdermemberguid
from
(
select
row_number() over (order by PH.SortOrder) - 1 as PlaceholderIndex, --zero based
PH.PlaceholderMemberGUID
from
viewplaceholders PH
where
PH.PlaceholderParentMemberGUID = @SectionGUID
--and PH.PlaceholderParentMemberGUID = @PlaceholderParentMemberGUID
) phnum
where
PlaceholderIndex = @placeholderindex
if @placeholdermemberguid is null return
exec procEMFFillInSet @modelguid, @placeholdermemberguid, @fillinmemberguid
GO
---------------------------------------------
-- dbo.procEMFFillInCopy
create proc procEMFFillInCopy
@oldmodelguid uniqueidentifier,
@newmodelguid uniqueidentifier
as
insert into emffillin(modelguid, placeholdermemberguid, filledinmemberguid, issetbyuser)
select
@newmodelguid, placeholdermemberguid, filledinmemberguid, issetbyuser
from
emffillin
where
modelguid = @oldmodelguid
and not exists(select 1 from emffillin fi2 where fi2.modelguid = @newmodelguid and fi2.placeholdermemberguid = emffillin.placeholdermemberguid)
GO
---------------------------------------------
-- dbo.procEMFFillInSet
CREATE proc [dbo].[procEMFFillInSet]
@planguid uniqueidentifier,
@PlaceholderMemberGUID uniqueidentifier,
@FilledInMemberGUID uniqueidentifier
as
if exists (select 1 from emffillin where ModelGUID = @planguid and placeholdermemberguid = @placeholdermemberguid) begin
update EMFFillIn
SET FilledInMemberGUID = @FilledInMemberGUID
WHERE
ModelGUID = @planguid
and PlaceholderMemberGUID = @PlaceholderMemberGUID
end else begin
INSERT INTO EMFFillIn (ModelGUID, PlaceHolderMemberGUID, FilledInMemberGUID)
VALUES (@PlanGUID, @PlaceHolderMemberGUID, @FilledInMemberGUID)
end
GO
---------------------------------------------
-- dbo.procEMFFillInSetByIndex
CREATE proc [dbo].[procEMFFillInSetByIndex]
@PlaceholderDimensionGUID uniqueidentifier
,@PlaceholderParentMemberGUID uniqueidentifier
,@PlaceholderIndex int
,@FillInMemberGUID uniqueidentifier
,@ModelGUID uniqueidentifier
as
/*
declare @PHDimGUID uniqueidentifier
declare @PlaceholderIndex int
declare @FillInMemberGUID uniqueidentifier
declare @ModelGUID uniqueidentifier
set @modelguid = '7594B42B-AF3D-43B6-8A56-6CA6F84F836B' --scott 2.0 1
set @PHDimGUID = '1A220CA5-182D-4EA8-AE70-1E6C1E7F8D2D' --staff ph
set @placeholderindex = 2
set @fillinmemberguid = '37D0CF18-435E-4CEC-9C6F-1D56C6276883' --staff: tushar
*/
declare @placeholdermemberguid uniqueidentifier
select
@placeholdermemberguid = placeholdermemberguid
from
(
select
row_number() over (order by PH.SortOrder) - 1 as PlaceholderIndex, --zero based
PH.PlaceholderMemberGUID
from
viewplaceholders PH
where
PH.PlaceholderDimensionGUID = @PlaceholderDimensionGUID
and PH.PlaceholderParentMemberGUID = @PlaceholderParentMemberGUID
) phnum
where
PlaceholderIndex = @placeholderindex
if @placeholdermemberguid is null return
exec procEMFFillInSet @modelguid, @placeholdermemberguid, @fillinmemberguid
GO
---------------------------------------------
-- dbo.procEMFFillInSetByTemplate
CREATE proc [dbo].[procEMFFillInSetByTemplate]
@modelguid uniqueidentifier
,@placeholderdimensionGUID uniqueidentifier
,@fitname varchar(max)
,@isClearingOld bit = 1
as
declare @desc varchar(max)
declare @instanceGUID uniqueidentifier
set @instanceGUID = NEWID()
begin try
begin transaction
declare @fillInDimensionGUID uniqueidentifier
select @fillInDimensionGUID = fillInDimensionGUID from securelist where listguid = @placeholderdimensionGUID
if @fillinDimensionguid is null
BEGIN
ROLLBACK TRANSACTION
set @desc = '[procEMFFillInSetByTemplate] Failed'
exec procLogScript @desc, null
RETURN
END
--SELECT DISTINCT PHDimensionGUID, MODELGUID, PARENTPHMEMBERGUID, FILLINGUID, SORTORDER INTO #fillinsDist
if @isClearingOld = 1 begin
delete from EMFFillIn where
modelguid = @modelguid
and placeholderMemberGUID in (select listmemberguid from securelistmember where listguid = @placeholderDimensionGUID)
end
insert into EMFFillInSetManyStaging (InstanceGUID,PHDimensionGUID,ModelGUID,ParentPHMemberGUID,FillInGUID,SortOrder)
select
@instanceGUID,
@placeholderdimensionguid as PHDimensionGUID,
@modelguid as ModelGUID,
phsection.listmemberguid as ParentPHMemberGUID,
slmv.listmemberguid as FillInGUID,
coalesce(slmvdo.valuetext,slm.sortorderfullpath) as SortOrder
from
securelistmember slm
inner join securelistmembervalue slmv on slm.listmemberguid = slmv.listmemberguid
inner join securelistmember phsection on
slmv.valuetext = phsection.name
and phsection.listguid = @placeholderDimensionGUID
left join securelistproperty slpdo on slm.listguid = slpdo.listguid and slpdo.name = 'Default Order'
left join securelistmembervalue slmvdo on slm.listguid = slmvdo.listguid and slmvdo.valueindex = slpdo.propertyindex and slmvdo.listmemberguid = slm.listmemberguid
where
slmv.listguid = @fillInDimensionGUID
and
exists (
select 1
from
securelistproperty slp
where
slp.propertytype= 9
and slp.listguid = slmv.listguid
and slmv.valueindex = slp.propertyindex
and slp.name = @fitname
)
exec procEMFFillInSetMany @instanceguid
delete from EMFFillInSetManyStaging where InstanceGUID = @instanceGUID
set @desc = '[procEMFFillInSetByTemplate] Succeeded, InstanceGUID=' + cast(@instanceGUID as varchar(36))
exec procLogScript @desc, null
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
set @desc = '[procEMFFillInSetByTemplate] Failed, InstanceGUID=' + cast(@instanceGUID as varchar(36)) + ': ' + error_message()
exec procLogScript @desc, null
exec procSysRethrowError
END CATCH
GO
---------------------------------------------
-- dbo.procEMFFillInSetMany
CREATE proc [dbo].[procEMFFillInSetMany]
@InstanceGUID uniqueidentifier
as
declare @desc varchar(max)
BEGIN TRY
BEGIN TRANSACTION
declare @PHDimensionGUID uniqueidentifier
declare @modelguid uniqueidentifier
declare @parentPHMemberGUID uniqueidentifier
declare @fillInGUID uniqueidentifier
declare @index int
SELECT DISTINCT PHDimensionGUID, MODELGUID, PARENTPHMEMBERGUID, FILLINGUID, SORTORDER INTO #fillinsDist
FROM EMFFillInSetManyStaging
WHERE InstanceGUID = @InstanceGUID
--clears out ALL (even those set by users) fillins for all combos of Plan-PlaceholderSection that are trying to be mass set
DELETE FROM EMFFillIn
where
exists
(
select 1 --listmemberguid
from
#fillinsdist fid
inner join securelistmember slm on fid.parentphmemberguid = slm.parentlistmemberguid
where
fid.modelguid = emffillin.modelguid
and emffillin.placeholdermemberguid = slm.listmemberguid
)
--and issetbyuser = 0
DECLARE fillins CURSOR LOCAL FAST_FORWARD
FOR SELECT PHDimensionGUID, MODELGUID, PARENTPHMEMBERGUID, FILLINGUID, Row_Number() over (partition by modelguid, parentphmemberguid order by SORTORDER asc) -1 FROM #fillinsDist
WHERE
NOT MODELGUID IS NULL
AND NOT PARENTPHMEMBERGUID is null
AND NOT FILLINGUID is null
OPEN fillins
FETCH NEXT FROM fillins INTO @PHDimensionGUID,@modelGUID, @parentPHMemberGUID, @fillInGUID, @index
WHILE @@FETCH_STATUS = 0
BEGIN
exec procEMFFillInSetByIndex @PHDimensionGUID, @ParentPHMemberGUID, @index, @FillInGUID, @ModelGUID
FETCH NEXT FROM fillins INTO @PHDimensionGUID,@modelGUID, @parentPHMemberGUID, @fillInGUID, @index
END
CLOSE fillins
deallocate fillins
drop table #fillinsDist
set @desc = '[procEMFFillInSetMany] Succeeded, InstanceGUID=' + cast(@instanceGUID as varchar(36))
exec procLogScript @desc, null
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
set @desc = '[procEMFFillInSetMany] Failed, InstanceGUID=' + cast(@instanceGUID as varchar(36)) + ': ' + error_message()
exec procLogScript @desc, null
exec procSysRethrowError
END CATCH
GO
---------------------------------------------
-- dbo.procEMFFillInSetManyClearThoseBeingSet
CREATE proc [dbo].[procEMFFillInSetManyClearThoseBeingSet]
@InstanceGUID uniqueidentifier
as
declare @desc varchar(36)
begin try
begin transaction
declare @PHDimensionGUID uniqueidentifier
declare @modelguid uniqueidentifier
declare @parentPHMemberGUID uniqueidentifier
declare @fillInGUID uniqueidentifier
declare @index int
SELECT DISTINCT PHDimensionGUID, MODELGUID, PARENTPHMEMBERGUID, FILLINGUID, SORTORDER INTO #fillinsDist
FROM EMFFillInSetManyStaging
WHERE InstanceGUID = @InstanceGUID
--clears out ALL (even those set by users) fillins for all combos of Plan-PlaceholderSection that are trying to be mass set
DELETE FROM EMFFillIn
where
exists
(
select 1 --listmemberguid
from
#fillinsdist fid
--inner join securelistmember slm on fid.parentphmemberguid = slm.parentlistmemberguid
where
fid.modelguid = emffillin.modelguid
and emffillin.filledinmemberguid = fid.fillinguid
)
and (not FillInGUID = '00000000-0000-0000-0000-000000000000' and not PlaceholderMemberGUID = '00000000-0000-0000-0000-000000000000')
--and issetbyuser = 0
DECLARE fillins CURSOR LOCAL FAST_FORWARD
FOR SELECT PHDimensionGUID, MODELGUID, PARENTPHMEMBERGUID, FILLINGUID, Row_Number() over (partition by modelguid, parentphmemberguid order by SORTORDER asc) -1 FROM #fillinsDist
WHERE
NOT MODELGUID IS NULL
AND NOT PARENTPHMEMBERGUID is null
AND NOT FILLINGUID is null
OPEN fillins
FETCH NEXT FROM fillins INTO @PHDimensionGUID,@modelGUID, @parentPHMemberGUID, @fillInGUID, @index
WHILE @@FETCH_STATUS = 0
BEGIN
exec procEMFFillInSetByIndex @PHDimensionGUID, @ParentPHMemberGUID, @index, @FillInGUID, @ModelGUID
FETCH NEXT FROM fillins INTO @PHDimensionGUID,@modelGUID, @parentPHMemberGUID, @fillInGUID, @index
END
CLOSE fillins
deallocate fillins
drop table #fillinsDist
set @desc = '[procEMFFillInSetManyClearThoseBeingSet] Succeeded, InstanceGUID=' + cast(@instanceGUID as varchar(36))
exec procLogScript @desc, null
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
set @desc = '[procEMFFillInSetManyClearThoseBeingSet] Failed, InstanceGUID=' + cast(@instanceGUID as varchar(36)) + ': ' + error_message()
exec procLogScript @desc, null
exec procSysRethrowError
END CATCH
GO
---------------------------------------------
-- dbo.procEMFFillInSetManyClearThoseBeingSet_ReorderAtEnd
CREATE proc [dbo].[procEMFFillInSetManyClearThoseBeingSet_ReorderAtEnd]
@InstanceGUID uniqueidentifier
as
declare @desc varchar(max)
begin try
begin transaction
declare @PHDimensionGUID uniqueidentifier
declare @modelguid uniqueidentifier
declare @parentPHMemberGUID uniqueidentifier
declare @fillInGUID uniqueidentifier
declare @index int
SELECT DISTINCT PHDimensionGUID, MODELGUID, PARENTPHMEMBERGUID, FILLINGUID, SORTORDER INTO #fillinsDist
FROM EMFFillInSetManyStaging
WHERE InstanceGUID = @InstanceGUID
--clears out ALL (even those set by users) fillins for all combos of Plan-PlaceholderSection that are trying to be mass set
delete FROM EMFFillIn
where
exists
(
select 1 --listmemberguid
from
#fillinsdist fid
--inner join securelistmember slm on fid.parentphmemberguid = slm.parentlistmemberguid
where
fid.modelguid = emffillin.modelguid
and emffillin.filledinmemberguid = fid.fillinguid
)
and (not FillInGUID = '00000000-0000-0000-0000-000000000000' and not PlaceholderMemberGUID = '00000000-0000-0000-0000-000000000000')
--and issetbyuser = 0
----If Any Remaining for Plan-Section Combos are out of order after removal - reorder--
Update viewemffillinsoutoforder set placeholdermemberguid = sortedphmemberguid
where
exists
(select 1
from
#fillinsdist fid
where
fid.modelguid = viewemffillinsoutoforder.modelguid
and viewemffillinsoutoforder.placeholdersectionguid = fid.PARENTPHMEMBERGUID
)
DECLARE fillins CURSOR LOCAL FAST_FORWARD
FOR SELECT PARENTPHMEMBERGUID, FILLINGUID,MODELGUID FROM #fillinsDist
WHERE
NOT MODELGUID IS NULL
AND NOT PARENTPHMEMBERGUID is null
AND NOT FILLINGUID is null
OPEN fillins
FETCH NEXT FROM fillins INTO @parentPHMemberGUID, @fillInGUID, @ModelGUID
--FETCH NEXT FROM fillins INTO @PHDimensionGUID,@modelGUID, @parentPHMemberGUID, @fillInGUID, @index
WHILE @@FETCH_STATUS = 0
BEGIN
exec procEMFFillInAddToEndSection @parentPHMemberGUID, @fillInGUID, @ModelGUID
--exec procEMFFillInSetByIndex @PHDimensionGUID, @ParentPHMemberGUID, @index, @FillInGUID, @ModelGUID
FETCH NEXT FROM fillins INTO @parentPHMemberGUID, @fillInGUID, @ModelGUID
END
CLOSE fillins
deallocate fillins
--Reorder Based on Dimension Sort After All Added To End of Section--
Update viewemffillinsoutoforder set placeholdermemberguid = sortedphmemberguid
where
exists
(select 1
from
#fillinsdist fid
where
fid.modelguid = viewemffillinsoutoforder.modelguid
and viewemffillinsoutoforder.placeholdersectionguid = fid.PARENTPHMEMBERGUID
)
drop table #fillinsDist
set @desc = '[procEMFFillInSetManyClearThoseBeingSet_ReorderAtEnd] Succeeded, InstanceGUID=' + cast(@instanceGUID as varchar(36))
exec procLogScript @desc, null
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
set @desc = '[procEMFFillInSetManyClearThoseBeingSet_ReorderAtEnd] Failed, InstanceGUID=' + cast(@instanceGUID as varchar(36)) + ': ' + error_message()
exec procLogScript @desc, null
exec procSysRethrowError
END CATCH
GO
---------------------------------------------
-- dbo.procEMFFillInSetManyNoClear
CREATE proc [dbo].[procEMFFillInSetManyNoClear]
@InstanceGUID uniqueidentifier
as
/*
declare @PHDimGUID uniqueidentifier
declare @PlaceholderIndex int
declare @FillInMemberGUID uniqueidentifier
declare @ModelGUID uniqueidentifier
set @modelguid = '7594B42B-AF3D-43B6-8A56-6CA6F84F836B' --scott 2.0 1
set @PHDimGUID = '1A220CA5-182D-4EA8-AE70-1E6C1E7F8D2D' --staff ph
set @placeholderindex = 2
set @fillinmemberguid = '37D0CF18-435E-4CEC-9C6F-1D56C6276883' --staff: tushar
*/
declare @PHDimensionGUID uniqueidentifier
declare @modelguid uniqueidentifier
declare @parentPHMemberGUID uniqueidentifier
declare @fillInGUID uniqueidentifier
declare @index int
SELECT DISTINCT PHDimensionGUID, MODELGUID, PARENTPHMEMBERGUID, FILLINGUID, SORTORDER INTO #fillinsDist
FROM EMFFillInSetManyStaging
WHERE InstanceGUID = @InstanceGUID
--clears out ALL (even those set by users) fillins for all combos of Plan-PlaceholderSection that are trying to be mass set
--DELETE FROM EMFFillIn
--where
-- exists
-- (
-- select 1 --listmemberguid
-- from
-- #fillinsdist fid
-- inner join securelistmember slm on fid.parentphmemberguid = slm.parentlistmemberguid
-- where
-- fid.modelguid = emffillin.modelguid
-- and emffillin.placeholdermemberguid = slm.listmemberguid
-- )
--and issetbyuser = 0
DECLARE fillins CURSOR LOCAL FAST_FORWARD
FOR SELECT PHDimensionGUID, MODELGUID, PARENTPHMEMBERGUID, FILLINGUID, Row_Number() over (partition by modelguid, parentphmemberguid order by SORTORDER asc) -1 FROM #fillinsDist
WHERE
NOT MODELGUID IS NULL
AND NOT PARENTPHMEMBERGUID is null
AND NOT FILLINGUID is null
AND NOT EXISTS (
SELECT 1
FROM EMFFillIn exFI
inner join securelistmember phslm on exfi.placeholdermemberguid = phslm.listmemberguid
WHERE exFI.modelguid = #fillinsDist.modelguid
and exFI.filledinmemberguid = #fillinsDist.fillinguid
and phslm.parentlistmemberguid = #fillinsDist.parentphmemberguid
)
OPEN fillins
FETCH NEXT FROM fillins INTO @PHDimensionGUID,@modelGUID, @parentPHMemberGUID, @fillInGUID, @index
WHILE @@FETCH_STATUS = 0
BEGIN
exec procEMFFillInAddtoendsection @ParentPHMemberGUID, @FillInGUID, @ModelGUID
FETCH NEXT FROM fillins INTO @PHDimensionGUID,@modelGUID, @parentPHMemberGUID, @fillInGUID, @index
END
CLOSE fillins
deallocate fillins
drop table #fillinsDist
--select
-- @placeholdermemberguid = placeholdermemberguid
--from
-- (
-- select
-- row_number() over (order by PH.SortOrder) - 1 as PlaceholderIndex, --zero based
-- PH.PlaceholderMemberGUID
-- from
-- viewplaceholders PH
-- where
-- PH.PlaceholderDimensionGUID = @PlaceholderDimensionGUID
-- and PH.PlaceholderParentMemberGUID = @PlaceholderParentMemberGUID
-- ) phnum
--where
-- PlaceholderIndex = @placeholderindex
--if @placeholdermemberguid is null return
--exec procEMFFillInSet @modelguid, @placeholdermemberguid, @fillinmemberguid
--GO
GO
---------------------------------------------
-- dbo.procEMFGetModelDependencyTreesByModel
CREATE procedure [dbo].[procEMFGetModelDependencyTreesByModel](
@ModelGUID uniqueidentifier
)
AS
BEGIN
DECLARE @submodelGUID uniqueidentifier;
DECLARE @ModelTree TABLE ( ModelGUID uniqueidentifier, [Level] int)
insert into @ModelTree select * from dbo.GetModelDependencyTree(@modelGUID, 100);
select * from @ModelTree --select for dataset
DECLARE mCursor CURSOR FAST_FORWARD FOR
select ModelGUID from @ModelTree
open mCursor
FETCH NEXT FROM mCursor into @submodelGUID
WHILE(@@FETCH_STATUS = 0)
BEGIN
if (@submodelGUID <> @ModelGUID)
select * from dbo.GetModelDependencyTree(@submodelGUID, 100);
FETCH NEXT FROM mCursor into @submodelGUID;
END
close mCursor;
DEALLOCATE mCursor;
END
GO
---------------------------------------------
-- dbo.procEMFGetModelDependencyTreesByModelList
CREATE Procedure [dbo].[procEMFGetModelDependencyTreesByModelList]
(
@ModelGUIDCSV nvarchar(max)
)
AS
declare crsCursor CURSOR FAST_FORWARD FOR
select PlanGUID from XPlan
where PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@ModelGUIDCSV, ',')) and IsDeletedPlan = 0
open crsCursor;
DECLARE @UsedModels TABLE
(
ModelGUID uniqueidentifier primary key
)
DECLARE @modelGUID uniqueidentifier
DECLARE @submodelGUID uniqueidentifier;
declare @ModelTree TABLE ( ModelGUID uniqueidentifier, [Level] int)
FETCH NEXT FROM crsCursor into @modelGUID
WHILE (@@FETCH_STATUS = 0)
BEGIN
insert into @ModelTree select * from dbo.GetModelDependencyTree(@modelGUID, 100);
if (not exists (select 1 from @UsedModels where ModelGUID = @modelGUID))
BEGIN
select * from @ModelTree --select for dataset
insert into @UsedModels (ModelGUID) VALUES (@modelGUID);
DECLARE mCursor CURSOR FAST_FORWARD FOR
select ModelGUID from @ModelTree
open mCursor
FETCH NEXT FROM mCursor into @submodelGUID
WHILE(@@FETCH_STATUS = 0)
BEGIN
if (not exists (select 1 from @UsedModels where ModelGUID = @submodelGUID))
BEGIN
select * from dbo.GetModelDependencyTree(@submodelGUID, 100);
insert into @UsedModels (ModelGUID) values (@submodelGUID);
END
FETCH NEXT FROM mCursor into @submodelGUID;
END
close mCursor;
DEALLOCATE mCursor;
delete from @ModelTree
END --if not exists
FETCH NEXT FROM crsCursor into @modelGUID
END --while
close crsCursor;
DEALLOCATE crsCursor;
GO
---------------------------------------------
-- dbo.procEMFGetModelDependencyTreesByModelTemplate
--Author: gforeman
--Branch: Earwig
--Forward
CREATE Procedure [dbo].[procEMFGetModelDependencyTreesByModelTemplate]
(
@ModelTemplateGUID uniqueidentifier
)
AS
declare crsCursor CURSOR FAST_FORWARD FOR
select PlanGUID from XPlan
where ModelTemplateGUID = @ModelTemplateGUID and IsDeletedPlan = 0
open crsCursor;
DECLARE @UsedModels TABLE
(
ModelGUID uniqueidentifier primary key
)
DECLARE @modelGUID uniqueidentifier
DECLARE @submodelGUID uniqueidentifier;
declare @ModelTree TABLE ( ModelGUID uniqueidentifier, [Level] int)
FETCH NEXT FROM crsCursor into @modelGUID
WHILE (@@FETCH_STATUS = 0)
BEGIN
insert into @ModelTree select * from dbo.GetModelDependencyTree(@modelGUID, 100);
if (not exists (select 1 from @UsedModels where ModelGUID = @modelGUID))
BEGIN
select * from @ModelTree --select for dataset
insert into @UsedModels (ModelGUID) VALUES (@modelGUID);
DECLARE mCursor CURSOR FAST_FORWARD FOR
select ModelGUID from @ModelTree
open mCursor
FETCH NEXT FROM mCursor into @submodelGUID
WHILE(@@FETCH_STATUS = 0)
BEGIN
if (not exists (select 1 from @UsedModels where ModelGUID = @submodelGUID))
BEGIN
select * from dbo.GetModelDependencyTree(@submodelGUID, 100);
insert into @UsedModels (ModelGUID) values (@submodelGUID);
END
FETCH NEXT FROM mCursor into @submodelGUID;
END
close mCursor;
DEALLOCATE mCursor;
delete from @ModelTree
END --if not exists
FETCH NEXT FROM crsCursor into @modelGUID
END --while
close crsCursor;
DEALLOCATE crsCursor;
GO
---------------------------------------------
-- dbo.procEMFImprovInsertCopy
CREATE proc [dbo].[procEMFImprovInsertCopy]
@sourceplanguid uniqueidentifier
,@newplanguid uniqueidentifier
as
declare @sourceFileGuid uniqueidentifier
select @sourceFileGuid =FileGUID from DataPathFile_Improv where FullPath = 'ImprovWorkbook' + CAST(@sourceplanguid as varchar(36)) +'.xlsx'
declare @fullpath varchar(max)
if not @sourceFileGuid is null begin
set @fullpath = 'ImprovWorkbook' + CAST(@newplanguid as varchar(36)) +'.xlsx'
exec dbo.procDataPathCopyFile @sourceFileGuid, @fullpath
end
delete from MEImprovData where ModelGUID = @newplanguid
insert into MEImprovData(ModelGUID, WorksheetGUID, Row, Col, Formula, CellValue, OriginalComment)
select @newplanguid, WorksheetGUID, Row, Col, Formula, CellValue, OriginalComment
from
MEImprovData
where
modelguid = @sourceplanguid
GO
---------------------------------------------
-- dbo.procEMFListCacheCleanup
CREATE proc [dbo].[procEMFListCacheCleanup]
@isDeleting bit = 0
as
declare @tblsql nvarchar(4000)
declare @tablename nvarchar(100)
declare crsTables cursor for
select
t.name
from
sys.tables t
left join SecureList l on cast(l.ListGUID as nvarchar(36)) = replace(RIGHT(t.name, 36), '_', '-')
where
t.name like 'zzlist%'
and l.ListGUID is null
open crsTables
fetch next from crsTables into @tablename
while(@@FETCH_STATUS = 0) begin
set @tblsql = 'drop table ' + @tablename
exec(@tblsql)
fetch next from crsTables into @tablename
end
close crsTables
deallocate crsTables
declare @viewsql nvarchar(4000)
declare @viewname nvarchar(100)
declare crsViews cursor for
select
v.name
from
sys.views v
left join SecureList l on replace(l.Name, ' ', '') = replace(replace(v.name, 'zzviewlist_', ''), 'zzviewlistexport_', '')
where
v.name like 'zzviewlist%'
and l.ListGUID is null
open crsViews
fetch next from crsViews into @viewname
while(@@FETCH_STATUS = 0) begin
if(@isDeleting = 1) begin
set @viewsql = 'drop view ' + @viewname
exec(@viewsql)
end else begin
print @viewname
end
fetch next from crsViews into @viewname
end
close crsViews
deallocate crsViews
GO
---------------------------------------------
-- dbo.procEMFMDCViewCleanup
CREATE proc [dbo].[procEMFMDCViewCleanup]
@isDeleting bit = 0
as
declare @viewsql nvarchar(4000)
declare @viewname nvarchar(100)
declare crsViews cursor for
select
v.name
from
sys.views v
left join EMFModelDataConfig mdc on replace(replace(replace(replace(replace(replace(replace(mdc.Name, ' ', ''), '-', ''), '&', ''), '(', ''), ')', ''), '/', ''), '\', '') in(replace(v.Name, 'zzviewModelTemplateMapping_', ''), replace(v.Name, 'zzviewModelTemplateMappingBasic_', ''), replace(v.Name, 'zzviewModelData_', ''), replace(v.Name, 'zzviewModelDataInner_', ''), replace(v.Name, 'zzviewModelDataBasic_', ''))
where
v.name like 'zzviewModel%'
and mdc.ModelDataConfigGUID is null
open crsViews
fetch next from crsViews into @viewname
while(@@FETCH_STATUS = 0) begin
if(@isDeleting = 1) begin
set @viewsql = 'drop view ' + @viewname
exec(@viewsql)
end else begin
print @viewname
end
fetch next from crsViews into @viewname
end
close crsViews
deallocate crsViews
GO
---------------------------------------------
-- dbo.procEMFMissingPHMembersCreate
CREATE proc [dbo].[procEMFMissingPHMembersCreate]
@sourcedb nvarchar(100)
as
declare @sql nvarchar(max)
set @sql='
insert into [dbo].[SecureListMember] ([ListMemberGUID],[ListGUID],[ParentListMemberGUID],[Name],[Description],[FullPath],[DisplayOrder],[OutlineLevel],[OperatorType],[IsIDLocked],[IsNameLocked],[IsDeleteLocked],[IsNewChildLocked],[IsParentAssociationLocked],[IsEditAttributeLocked],[ListMemberID],[SortOrderFullPath],[FillInConfigGUID],[FillInDimensionGUID],[DateCreated],[DateModified],[LootIDOverride])
select LM.[ListMemberGUID],LM.[ListGUID],LM.[ParentListMemberGUID],LM.[Name],LM.[Description],LM.[FullPath],LM.[DisplayOrder],LM.[OutlineLevel],LM.[OperatorType],LM.[IsIDLocked],LM.[IsNameLocked],LM.[IsDeleteLocked],LM.[IsNewChildLocked],LM.[IsParentAssociationLocked],LM.[IsEditAttributeLocked],LM.[ListMemberID],LM.[SortOrderFullPath],LM.[FillInConfigGUID],LM.[FillInDimensionGUID],LM.[DateCreated],LM.[DateModified],LM.[LootIDOverride]
from
' + @sourcedb + '.dbo.SecureListMember LM
inner join ' + @sourcedb + '.dbo.SecureList L on L.ListGUID = LM.ListGUID
left join SecureListMember ME on ME.Name = LM.Name and ME.ListGUID = LM.ListGUID
where
ME.ListMemberGUID is null
and L.Name like ''%ph'''
exec(@sql)
GO
---------------------------------------------
-- dbo.procEMFModelTemplateMappingEnsureIndexes
create proc procEMFModelTemplateMappingEnsureIndexes
as
declare @mdcguid uniqueidentifier
declare @sql nvarchar(max)
declare crsScripts cursor for
select
MDC.ModelDataConfigGUID,
'CREATE CLUSTERED INDEX [idx_zzEMFModelTemplateMapping_' + replace(CAST(MDC.ModelDataConfigGUID as nvarchar(36)), '-', '_') + '_ByTemplate] ON [dbo].[zzEMFModelTemplateMapping_' + replace(CAST(MDC.ModelDataConfigGUID as nvarchar(36)), '-', '_') + ']
(
[MODELTEMPLATEGUID] ASC
)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]' as IdxCreateSQL
from
EMFModelDataConfig MDC
where
not exists(select 1 from sys.indexes idx where idx.name = 'idx_zzEMFModelTemplateMapping_' + replace(CAST(MDC.ModelDataConfigGUID as nvarchar(36)), '-', '_') + '_ByTemplate')
open crsScripts
fetch next from crsScripts into @mdcguid, @sql
while (@@FETCH_STATUS = 0) begin
print @mdcguid
exec(@sql)
fetch next from crsScripts into @mdcguid, @sql
end
close crsScripts
deallocate crsScripts
GO
---------------------------------------------
-- dbo.procEMFRemoveTemplateMappings
CREATE proc [dbo].[procEMFRemoveTemplateMappings]
@modeltemplateguid uniqueidentifier,
@includeprofiles bit = 1
as
--EMF mapping tables
declare @execsql varchar(max)
set @execsql = '
delete from zzemfmodeltemplatemapping_{mdcguidfriendly} where modeltemplateguid = ''' + cast(@modeltemplateguid as varchar(36)) + '''
'
declare @structurefiltersql varchar(max)
set @structurefiltersql = '
WHERE
ModelDataConfigGUID IN (
select
isnull(st.modeldataconfigguid, ls.parentmodeldataconfigguid)
from
emfmodeltemplatelinksource ls
left join emfsubtable st on ls.parentsubtableguid = st.subtableguid
where
modeltemplateguid = ''' + cast(@modeltemplateguid as varchar(36)) + '''
)'
exec dbo.procEMFRunForManyStructures @execsql, @structurefiltersql, 1,0
--Expansions (EMF)
delete from EMFModelTemplateExpansion where ExpansionGUID in (select expansionguid from viewEMFModelTemplateExpansion where ModelTemplateGUID = @modeltemplateguid)
--Form Field mappings (Score)
delete from EMFModelTemplateFormFieldMapping where cellguid in (select c.cellguid from viewmecell c where c.BookGUID = @modeltemplateguid)
--Placeholder Labels (EMF)
delete from EMFModelTemplatePlaceholderLabelMapping where cellguid in (select c.cellguid from viewmecell c where c.BookGUID = @modeltemplateguid)
--Form Field mappings (EMF)
delete from EMFModelTemplateFormFieldMapping where cellguid in (select ff.CellGUID from EMFModelTemplateFormFieldMapping ff left join MEExcelCell ce on ce.ExcelCellGUID = ff.CellGUID where ce.ExcelCellGUID is null)
--Score mapping tables
set @execsql = '
delete m
from
{schema}.{object} m
where
exists (
select 1
from
viewMECell c
where
c.CellGUID = m.CellGUID
and c.BookGUID = ''' + cast(@modeltemplateguid as varchar(36)) + '''
)
or not exists (
select 1
from
viewMECell c2
where
c2.CellGUID = m.CellGUID
)
'
set @structurefiltersql = '
where
ScoreDataTable.DataTableGUID in (
select DataTableGUID1
from ScoreComposite sc
inner join EMFModelTemplateLinkSource ls on ls.ParentScoreCompositeTableGUID = sc.CompositeGUID
where
ls.ModelTemplateGUID = ''' + cast(@modeltemplateguid as varchar(36)) + '''
)
'
exec dbo.procScoreRunForManyStructures @execsql, @structurefiltersql, 1, 0
--Placeholder Labels (Score)
delete phl from [dbo].[MEScorePlaceholderLabel] phl where phl.CellGUID in (select cx.ExcelCellGUID from [dbo].[viewMECell] cx where cx.ModelTemplateGUID = @modeltemplateguid)
--Expansions (Score)
delete scx from MEScoreExpansion scx where scx.ExcelCellGUID in (select cx.ExcelCellGUID from [dbo].[viewMECell] cx where cx.ModelTemplateGUID = @modeltemplateguid)
--Template Cells (Score)
delete xc from [dbo].[MEExcelCell] xc inner join [dbo].[EMFModelTemplateWorksheet] ws on ws.WorksheetGUID = xc.ExcelSheetGUID where ws.ModelTemplateGUID = @modeltemplateguid;
--Child Expansion Profiles
if (@includeprofiles = 1) begin
declare crsProfiles cursor fast_forward for select ChildModelTemplateGUID from [dbo].[MEScoreExpansionProfile] with (readuncommitted) where ParentModelTemplateGUID = @modeltemplateguid
declare @childmtguid uniqueidentifier
open crsProfiles
fetch next from crsProfiles into @childmtguid
while(@@fetch_status = 0) begin
exec [dbo].[procEMFRemoveTemplateMappings] @childmtguid, 0
fetch next from crsProfiles into @childmtguid
end
close crsProfiles
deallocate crsProfiles
end
GO
---------------------------------------------
-- dbo.procEMFRemoveUnfilledData
create proc procEMFRemoveUnfilledData
@placeholderDimensionGUID uniqueidentifier
,@isDeleting bit = 0
,@isRunning bit = 0
as
--set @isRunning = 0
--set @isDeleting = 1
--set @placeholderDimensionGUID = '17FEAA4B-A2A2-4353-B081-03E3DFB5CB77'
declare @dimnameFriendly varchar(128)
select @dimnameFriendly = REPLACE(name,' ','') from securelist where ListGUID = @placeholderDimensionGUID
--select * from SecureList where IsPlaceholder = 1
declare @planDimGUID uniqueidentifier
select @planDimGUID = listguid from SecureList where ListType = 2
declare @wheresql varchar(max)
set @wheresql = '
where modeldataconfigguid in (
select
modeldataconfigguid
from
EMFModelDataConfigDimensionLink
where
DimensionGUID = ''' + cast(@placeholderDimensionGUID as varchar(36)) + '''
intersect
select
modeldataconfigguid
from
EMFModelDataConfigDimensionLink
where
DimensionGUID = ''' + cast(@planDimGUID as varchar(36)) + '''
)
'
declare @maybeBasic varchar(10)
if @isDeleting = 1
set @maybeBasic = 'Basic'
else
set @maybeBasic = ''
declare @sql varchar(max)
if @isDeleting = 1
set @sql = 'delete data '
else
set @sql = 'select ''{mdcname}'' as MDCName, * '
set @sql = @sql + '
from
zzviewModelData' + @maybebasic + '_{mdcnamefriendly} data
where
not exists (
select 1
from
EMFFillIn fi
where
fi.modelguid = data.PlansGUID --modelguid
and fi.FilledInMemberGUID = data.' + @dimnamefriendly + 'GUID -- g17FEAA4B_A2A2_4353_B081_03E3DFB5CB77
)
'
exec procEMFRunForManyStructures @sql, @wheresql,@isRunning,0
GO
---------------------------------------------
-- dbo.procEMFRunForManyStructures
CREATE proc [dbo].[procEMFRunForManyStructures]
@execsql varchar(max)
,@structurefiltersql varchar(max) = ''
,@exec bit = 0
,@allTogether bit = 0
as
--set @execsql = '
-- select ''{mdcname}'', count(*) from zzemfmodeldata_{mdcguidfriendly}
--'
--set @structurefiltersql = '
--where name like ''lrfp%''
--'
declare @structuresql varchar(max)
set @structuresql = '
select
modeldataconfigguid, name
from
emfmodeldataconfig
' + @structurefiltersql
create table #mdcs (modeldataconfigguid uniqueidentifier, name nvarchar(64))
insert into #mdcs
exec (@structuresql)
declare @mdcguid uniqueidentifier
declare @mdcguidfriendly varchar(36)
declare @mdcname nvarchar(64)
declare @mdcnamefriendly nvarchar(64)
declare @sql varchar(max)
declare crsMDC CURSOR FOR
select modeldataconfigguid, name
from #mdcs
open crsMDC;
set @sql = ''
FETCH NEXT FROM crsMDC into @mdcguid, @mdcname
WHILE (@@FETCH_STATUS = 0)
BEGIN
set @mdcguidfriendly = replace(cast(@mdcguid as varchar(36)),'-','_')
set @mdcnamefriendly = REPLACE(@mdcname,' ','')
set @mdcnamefriendly = REPLACE(@mdcnamefriendly,'-','')
set @mdcnamefriendly = REPLACE(@mdcnamefriendly,'.','')
if @allTogether = 1 begin
set @sql = @sql + replace(replace(replace(replace(@execsql,'{mdcguid}',cast(@mdcguid as varchar(36))), '{mdcname}',@mdcname),'{mdcguidfriendly}',@mdcguidfriendly),'{mdcnamefriendly}',@mdcnamefriendly)
end else begin
set @sql = replace(replace(replace(replace(@execsql,'{mdcguid}',cast(@mdcguid as varchar(36))), '{mdcname}',@mdcname),'{mdcguidfriendly}',@mdcguidfriendly),'{mdcnamefriendly}',@mdcnamefriendly)
if @exec = 1 begin
exec(@sql)
end else begin
print @sql
end
end
FETCH NEXT FROM crsMDC into @mdcguid, @mdcname
END
close crsMDC;
DEALLOCATE crsMDC;
if @allTogether = 1 begin
if @exec = 1 begin
exec(@sql)
end else begin
print @sql
end
end
drop table #mdcs
GO
---------------------------------------------
-- dbo.procEMFShowTemplateMappingCounts
CREATE proc [dbo].[procEMFShowTemplateMappingCounts]
@modeltemplateguid uniqueidentifier
as
declare @wheresql varchar(max)
set @wheresql = '
where modeldataconfigguid in (
select
ISNULL(st.MODELDATACONFIGGUID,ls.ParentModelDataConfigGUID)
from
EMFModelTemplateLinkSource ls
left join EMFSubtable st on ls.ParentSubtableGUID= st.SUBTABLEGUID
where
modeltemplateguid = ''' + cast(@modeltemplateguid as varchar(36)) + '''
)
'
declare @sql varchar(max)
set @sql = '
select
''{mdcname}'' as Name, count(*) as TotalCnt, sum(case when isusermapped = 1 then 1 else 0 end) as UserMappedCount
from
zzEMFModelTemplateMapping_{mdcguidfriendly} map
where
modeltemplateguid = ''' + cast(@modeltemplateguid as varchar(36)) + '''
'
exec procEMFRunForManyStructures @sql, @wheresql,1
GO
---------------------------------------------
-- dbo.procEMFViewTemplateMappingCount
CREATE proc [dbo].[procEMFViewTemplateMappingCount]
@modeltemplateguid uniqueidentifier
as
declare @execsql varchar(max)
set @execsql = 'declare @cnt int
select @cnt = count(*) from zzemfmodeltemplatemapping_{mdcguidfriendly} with (readuncommitted) where modeltemplateguid = ''' + cast(@modeltemplateguid as varchar(36)) + '''
print ''{mdcname} '' + cast(@cnt as varchar(36))
'
declare @structurefiltersql varchar(max)
set @structurefiltersql = ' WHERE ModelDataConfigGUID IN (
select
isnull(st.modeldataconfigguid, ls.parentmodeldataconfigguid)
from
emfmodeltemplatelinksource ls
left join emfsubtable st on ls.parentsubtableguid = st.subtableguid
where
modeltemplateguid = ''' + cast(@modeltemplateguid as varchar(36)) + '''
)'
exec dbo.procEMFRunForManyStructures @execsql, @structurefiltersql, 1,0
GO
---------------------------------------------
-- dbo.procEnsureColumnInTable
CREATE proc [dbo].[procEnsureColumnInTable](
@SchemaName NVARCHAR(128),
@TableName NVARCHAR(MAX),
@ColumnName NVARCHAR(128),
@Type NVARCHAR(128), @Default nvarchar(128), @DebugMode bit = 0)
AS
BEGIN
DECLARE @sql varchar(max)
IF dbo.tableColumnExists(@SchemaName, @TableName, @ColumnName)=0 BEGIN
SET @SQL = 'ALTER TABLE ' + (select [dbo].[GetSQLTableExpression](@SchemaName, @TableName))
SET @SQL = @SQL + ' ADD ' + @ColumnName
SET @SQL = @SQL + ' ' + @Type
IF LOWER(@Type) <> 'timestamp'
begin
SET @SQL = @SQL + ' NOT NULL CONSTRAINT DF_' + replace(@TableName,' ','_') + '_' + @ColumnName
SET @SQL = @SQL + ' DEFAULT ' + @default
end
IF @DebugMode = 0 BEGIN
EXEC (@SQL)
PRINT @ColumnName + ' added to ' + @TableName
END ELSE BEGIN
PRINT @SQL
END
END
END
GO
---------------------------------------------
-- dbo.procEnsureColumnInTableCopyFromOther
CREATE proc [dbo].[procEnsureColumnInTableCopyFromOther](
@SchemaName NVARCHAR(128),
@TableName NVARCHAR(MAX),
@ColumnName NVARCHAR(128),
@Type NVARCHAR(128), @Default nvarchar(128), @OldColumnName NVARCHAR(128), @DebugMode bit = 0)
AS
BEGIN
DECLARE @sql varchar(max)
DECLARE @sql2 varchar(max)
IF dbo.ColumnExists(@SchemaName, @TableName, @ColumnName)=0 BEGIN
SET @SQL = 'ALTER TABLE ' + (select [dbo].[GetSQLTableExpression] (@SchemaName, @TableName))
SET @SQL = @SQL + ' ADD ' + @ColumnName
SET @SQL = @SQL + ' ' + @Type
SET @SQL = @SQL + ' NOT NULL CONSTRAINT DF_' + Replace(@TableName,' ','_') + '_' + @ColumnName
SET @SQL = @SQL + ' DEFAULT ' + @default
SET @SQL2 = ' UPDATE ' + (select [dbo].[GetSQLTableExpression] (@SchemaName, @TableName))
SET @SQL2 = @SQL2 + ' SET ' + @ColumnName
SET @SQL2 = @SQL2 + ' = ' + @OldColumnName
IF @DebugMode = 0 BEGIN
EXEC (@SQL)
PRINT @ColumnName + ' added to ' + @TableName
EXEC (@SQL2)
PRINT @OldColumnName + ' copied to ' + @ColumnName + ' for ' + @TableName
END ELSE BEGIN
PRINT @SQL
PRINT 'GO'
PRINT @SQL2
END
END
END
GO
---------------------------------------------
-- dbo.procEnsureColumnNotInTable
CREATE proc [dbo].[procEnsureColumnNotInTable](
@SchemaName NVARCHAR(128),
@TableName NVARCHAR(MAX),
@ColumnName NVARCHAR(128),
@DebugMode bit = 0
)
AS
BEGIN
DECLARE @sql varchar(max)
IF dbo.ColumnExists(@SchemaName, @TableName, @ColumnName)=1 BEGIN
SET @SQL = 'ALTER TABLE ' + (select [dbo].[GetSQLTableExpression](@SchemaName, @TableName))
SET @SQL = @SQL + ' DROP CONSTRAINT DF_' + @TableName + '_' + @ColumnName
SET @SQL = @SQL + '
ALTER TABLE ' + (select [dbo].[GetSQLTableExpression](@SchemaName, @TableName))
SET @SQL = @SQL + ' DROP COLUMN ' + @ColumnName
IF @DebugMode = 0 BEGIN
EXEC (@SQL)
PRINT @ColumnName + ' removed from ' + @TableName
END ELSE BEGIN
PRINT @SQL
END
END
END
GO
---------------------------------------------
-- dbo.procEnsureDimensionColumnsInTable
CREATE proc [dbo].[procEnsureDimensionColumnsInTable]
@schemaname nvarchar(128),
@tableName nvarchar(128),
@mdcguid uniqueidentifier,
@debugmode bit,
@skipmodel bit
as
DECLARE @dimensionName as nvarchar(256)
DECLARE @dimensionGUID as uniqueidentifier
DECLARE @listtype int
DECLARE @zzDIMcursor nvarchar(256)
DECLARE zzdimensions CURSOR LOCAL FAST_FORWARD
FOR SELECT SLM.LISTGUID, SLM.NAME, SLM.LISTTYPE, UPPER('G' + REPLACE(cast(SLM.LISTGUID as varchar(36)),'-','_')) FROM dbo.EMFModelDataConfigDimensionLink MDCDL JOIN SECURELIST SLM ON MDCDL.DIMENSIONGUID=SLM.LISTGUID WHERE MDCDL.MODELDATACONFIGGUID = @MDCGUID ORDER BY CASE WHEN SLM.LISTTYPE = 2 THEN 0 ELSE 1 END, CAST(SLM.LISTGUID as varchar(36)) ASC
OPEN zzdimensions
FETCH NEXT FROM zzdimensions INTO @dimensionGUID, @dimensionName, @listtype, @zzDIMcursor
WHILE @@FETCH_STATUS = 0
BEGIN
--SET @zzDIMcolumnname = @zzDIMcursor --+ 'GUID'
IF @LISTTYPE = 2 BEGIN
IF @skipmodel = 0 BEGIN
exec procEnsureColumnInTable @schemaname, @tableName,'MODELGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
END
END ELSE BEGIN
exec procEnsureColumnInTable @schemaname, @tableName,@zzDimCursor, 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
END
FETCH NEXT FROM zzdimensions INTO @dimensionGUID, @dimensionName, @listtype, @zzDIMcursor
END
CLOSE zzdimensions
DEALLOCATE zzdimensions
GO
---------------------------------------------
-- dbo.procEnsureSchema
CREATE PROCEDURE dbo.procEnsureSchema(
@Schema nvarchar(128)
)
AS
BEGIN
declare @count int;
select @count = count(*) from INFORMATION_SCHEMA.SCHEMATA where [SCHEMA_NAME] = @Schema;
if (@count < 1)
begin
declare @sql varchar(max);
set @sql = 'CREATE SCHEMA [' + @Schema + '];';
exec (@sql);
end
END
GO
---------------------------------------------
-- dbo.procEnsureScoreDataTableSetup
CREATE proc [dbo].[procEnsureScoreDataTableSetup]
@dataTableGUID uniqueidentifier
,@debugMode bit = 0
as
--set @dataTableGUID = 'BDD7EF92-5335-4FD1-9E0A-E22FF8A60CC8'
--set @debugMode = 0
declare @mappingTableName nvarchar(max)
declare @SchemaName nvarchar(128)
select
@mappingTableName = SQLObjectName,
@SchemaName = SQLSchemaName
from dbo.ScoreDataTable where DataTableGUID = @dataTableGUID
exec procAddIdentityColumnToTable @SchemaName, @mappingTableName,'RowID', @DebugMode, '1', '1'
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'HistoryItemGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName, 'Version', 'timestamp', '', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName, 'IsDeleted', 'bit', '0', @DebugMode
GO
---------------------------------------------
-- dbo.procEnsureScoreMappingTableSetup
CREATE proc [dbo].[procEnsureScoreMappingTableSetup]
@dataTableGUID uniqueidentifier
,@debugMode bit = 0
,@isLegacy bit = 0
as
--set @dataTableGUID = 'BDD7EF92-5335-4FD1-9E0A-E22FF8A60CC8'
--set @debugMode = 0
declare @mappingTableName nvarchar(max)
declare @SchemaName nvarchar(128)
select
@mappingTableName = SQLObjectName,
@SchemaName = SQLSchemaName
from dbo.ScoreDataTable where DataTableGUID = @dataTableGUID
exec procEnsureScoreDataTableSetup @dataTableGUID, @debugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'RowExpanded', 'int', '0', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'CellGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'IsUserMapped', 'bit', '1', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'MeasureGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureScoreMeasureExists @datatableguid,'RowExpanded',2,@debugmode
exec procEnsureScoreMeasureExists @datatableguid,'CellGUID',1,@debugmode
exec procEnsureScoreMeasureExists @datatableguid,'IsUserMapped',10,@debugmode
exec procEnsureScoreMeasureExists @datatableguid,'MeasureGUID',8,@debugmode
if @isLegacy = 1 begin
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'IsReadFromDB', 'bit', '0', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'IsWrittenToDB', 'bit', '0', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'IsLocked', 'bit', '0', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'IsAssumptionInput', 'bit', '0', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'IsAssumptionOutput', 'bit', '0', @DebugMode
exec procEnsureColumnInTable @SchemaName, @mappingTableName,'CompositeGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureScoreMeasureExists @datatableguid,'IsWrittenToDB',3,@debugmode
exec procEnsureScoreMeasureExists @datatableguid,'IsReadFromDB',4,@debugmode
exec procEnsureScoreMeasureExists @datatableguid,'IsLocked',5,@debugmode
exec procEnsureScoreMeasureExists @datatableguid,'IsAssumptionInput',6,@debugmode
exec procEnsureScoreMeasureExists @datatableguid,'IsAssumptionOutput',7,@debugmode
exec procEnsureScoreMeasureExists @datatableguid,'CompositeGUID',9,@debugmode
end
--CellGUID = 1
--RowExpanded = 2
--IsWrittenToDB = 3
--IsReadFromDB = 4
--IsLocked = 5
--IsAssumptionInput = 6
--IsAssumptionOutput = 7
--MeasureGUID = 8
--guid = 36
--int = 52
--bit = 104
--go
--alter proc procEnsureScoreMeasureExists
-- @dataTableGUID uniqueidentifier
-- ,@columnName varchar(64)
-- ,@sqlDataType int
-- ,@specialMeasureIndex tinyint
-- ,@isDebug bit = 0
--as
--declare @cnt int
--select @cnt = COUNT(*) from dbo.ScoreMeasure sm where sm.DataTableGUID = @dataTableGUID and SQLColumnName = @columnName
--if @cnt = 0 begin
-- if @isDebug = 1 begin
-- select @columnName, @datatableguid,1,1,@columnName, '{0}.' + @columnName, @sqlDataType,@specialMeasureIndex
-- end else begin
-- insert into dbo.ScoreMeasure (FriendlyName,DataTableGUID,IsReadFromDB,IsWrittenToDB,SQLColumnName, SQLColumnExpression, SQLDataType, SpecialMeasureIndex)
-- select @columnName, @datatableguid,1,1,@columnName, '{0}.' + @columnName, @sqlDataType,@specialMeasureIndex
-- end
--end
GO
---------------------------------------------
-- dbo.procEnsureScoreMeasureExists
CREATE proc [dbo].[procEnsureScoreMeasureExists]
@dataTableGUID uniqueidentifier
,@columnName varchar(64)
,@specialMeasureIndex tinyint
,@isDebug bit = 0
as
declare @cnt int
select @cnt = COUNT(*) from dbo.ScoreMeasure sm where sm.DataTableGUID = @dataTableGUID and SQLColumnName = @columnName
if @cnt = 0 begin
--measure missing completely
if @isDebug = 1 begin
select @columnName, @datatableguid,1,1,@columnName, '{0}.' + @columnName, @specialMeasureIndex
end else begin
insert into dbo.ScoreMeasure (FriendlyName,DataTableGUID,IsReadFromDB,IsWrittenToDB,SQLColumnName, SpecialMeasureIndex)
select @columnName, @datatableguid,1,1,@columnName, @specialMeasureIndex
end
end else if @cnt = 1 begin
select @cnt = COUNT(*) from dbo.ScoreMeasure sm where sm.DataTableGUID = @dataTableGUID and SQLColumnName = @columnName and SpecialMeasureIndex = @specialMeasureIndex
if @cnt = 0 begin
--special measure index is wrong
if @isDebug = 1 begin
print 'Index not set correctly for ' + @columnname
end else begin
update dbo.ScoreMeasure set SpecialMeasureIndex = @specialMeasureIndex where DataTableGUID = @dataTableGUID and SQLColumnName = @columnName
end
end
end
GO
---------------------------------------------
-- dbo.procEnsureUserAppModeAccessLink
CREATE proc procEnsureUserAppModeAccessLink (
@UserGUID uniqueidentifier,
@AccessLevel tinyint = 1
)
AS
BEGIN
if ((select COUNT(*) from UserProfileAppModeAccessLink where UserGUID = @UserGUID and AccessLevel = @AccessLevel) = 0)
insert into UserProfileAppModeAccessLink (UserGUID, AccessLevel) VALUES (@UserGUID, @AccessLevel);
END
GO
---------------------------------------------
-- dbo.procEnsureUserAppModeAccessLinkAllUsers
create procedure procEnsureUserAppModeAccessLinkAllUsers
AS
BEGIN
declare crsCursor CURSOR FAST_FORWARD FOR
select UserGUID from UserProfile
open crsCursor;
DECLARE @guid uniqueidentifier
FETCH NEXT FROM crsCursor into @guid
WHILE (@@FETCH_STATUS = 0)
BEGIN
exec procEnsureUserAppModeAccessLink @guid;
FETCH NEXT FROM crsCursor into @guid
END
close crsCursor;
DEALLOCATE crsCursor;
END
GO
---------------------------------------------
-- dbo.procErrorPrint
-- Create procedure to retrieve error information.
create PROCEDURE procErrorPrint
AS
print '
ERRORNUMBER: ' + cast(ERROR_NUMBER() as varchar(max)) + '
ERROR_SEVERITY: ' + cast(ERROR_SEVERITY() as varchar(max)) + '
ERROR_STATE: ' + cast(ERROR_STATE() as varchar(max)) + '
ERROR_PROCEDURE: ' + cast(ERROR_PROCEDURE() as varchar(max)) + '
ERROR_LINE: ' + cast(ERROR_LINE() as varchar(max)) + '
ERROR_MESSAGE: ' + cast(ERROR_MESSAGE() as varchar(max))
GO
---------------------------------------------
-- dbo.procEventUpdate
CREATE proc procEventUpdate
@eventname varchar(64)
as
insert into Event (EventName)
select @eventname where not @eventname in (select eventname from Event)
if @@ROWCOUNT = 0 begin
update
Event
set
EventName = EventName
where
EventName = @eventname
end
GO
---------------------------------------------
-- dbo.procExpansionDeleteInvalidMemberSelections
CREATE PROC procExpansionDeleteInvalidMemberSelections AS
DELETE xmem FROM
EMFModelTemplateExpansion Ex
INNER JOIN EMFModelTemplateExpansionLabel lab ON ex.EXPANSIONGUID = lab.EXPANSIONGUID
INNER JOIN EMFEntityExpansionMember xmem ON xmem.EXPANSIONGUID = ex.EXPANSIONGUID
INNER JOIN SecureListMember mem ON xmem.DIMENSIONMEMBERGUID = mem.listmemberguid
WHERE
ex.DIMENSIONLEVEL <> mem.OUTLINELEVEL
GO
---------------------------------------------
-- dbo.procFE2UpdateFormFieldSection
CREATE PROCEDURE [dbo].[procFE2UpdateFormFieldSection](
@FormFieldGUID As UNIQUEIDENTIFIER,
@FormSectionGUID As UNIQUEIDENTIFIER,
@IgnoreColumn As BIT
)
AS
BEGIN
DECLARE
@Row INT,
@Col INT
SELECT @Row=MAX(Row)
FROM [dbo].[FE2FormField]
WHERE FormSectionGUID = @FormSectionGUID
IF @Row IS NULL
BEGIN
SET @Row = 0
SET @Col = 0
END
ELSE IF (@IgnoreColumn = 1 OR EXISTS (SELECT 1 FROM [dbo].[FE2FormField] WHERE FormSectionGUID = @FormSectionGUID and Row=@Row and Col=1))
BEGIN
SET @Row += 1
SET @Col = 0
END
ELSE BEGIN
SET @Col = 1
END
UPDATE [dbo].[FE2FormField]
SET Col=@Col, Row=@Row, FormSectionGUID=@FormSectionGUID
WHERE FormFieldGUID=@FormFieldGUID AND FormSectionGUID != @FormSectionGUID
END
GO
---------------------------------------------
-- dbo.procFindPerformanceFlaws
CREATE PROCEDURE [dbo].[procFindPerformanceFlaws]
@SchemaName NVARCHAR(10) = '', -- Provide the schema you wish to check
@SpecificObj NVARCHAR(1000) = '' -- If you are looking for a specific object, specify it here, otherwise the entire schema will be checked
AS
BEGIN
/*
Script Owner: Mike Y.
Script Notes:
- This is not a performant script, so ignore the amount of cursors, can always tweak it later
- There are false positives, will work on trying to narrow that down as we use this
- Will add more checks as time goes on.
Left to do:
- Use Search Arguments ( will look /search for table scan at SQL level in Perf Env as a first step)
- Avoid using table variables, cursors or function calls that evaluate each row in where clause
Change Log:
07/12/2019 - Added table level checks
*/
SET NOCOUNT ON;
IF OBJECT_ID('tempdb.dbo.#objects') IS NOT NULL
DROP TABLE #objects
IF OBJECT_ID('tempdb.dbo.#Results') IS NOT NULL
DROP TABLE #Results
CREATE TABLE #Results (
Name NVARCHAR(MAX),
ObjectType NVARCHAR(MAX),
Severity SMALLINT,
Category NVARCHAR(MAX),
Description NVARCHAR(MAX)
)
SELECT *
INTO #objects
FROM [sys].[objects]
WHERE type IN ('U', 'P', 'V') -- https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-objects-transact-sql?view=sql-server-2017
AND schema_id = SCHEMA_ID(@SchemaName)
AND (@SpecificObj = '' OR object_id = OBJECT_ID(@SchemaName + '.' + @SpecificObj))
IF ((SELECT COUNT(*) FROM #objects) = 0)
BEGIN
SELECT @SchemaName + '.' + @SpecificObj + ' was not found in this database' AS Error
RETURN;
END
-- Use table compression if it will grow over 1,000 rows
CREATE TABLE #FactPageCompression (
Name NVARCHAR(MAX),
ObjectType NVARCHAR(MAX)
)
-- Loop through any procs
DECLARE @ObjectId INT,
@SchemaId INT,
@Type NVARCHAR(MAX)
DECLARE crsObjs CURSOR FAST_FORWARD FOR SELECT Object_Id, Schema_Id, Type_Desc FROM #objects WHERE Type != 'U'
OPEN crsObjs
FETCH NEXT FROM crsObjs INTO @ObjectId, @SchemaId, @Type
DECLARE @sql NVARCHAR(MAX)
WHILE (@@fetch_status = 0)
BEGIN
SELECT @sql = OBJECT_DEFINITION(@ObjectId)
INSERT INTO #Results (Name, ObjectType, Category, Description, Severity)
SELECT SCHEMA_NAME(@SchemaId) + '.' + OBJECT_NAME(@ObjectId), @Type, Category, Description, Severity FROM [dbo].[funcFindTSQLPerformanceFlaws](@sql);
FETCH next FROM crsObjs INTO @ObjectId, @SchemaId, @Type
END
CLOSE crsObjs
DEALLOCATE crsObjs
DECLARE @TableName NVARCHAR(MAX);
-- Table Checks
DECLARE crsTbls cURSOR FAST_FORWARD FOR SELECT Object_Id, Schema_Id, Type_Desc FROM #objects WHERE Type = 'U'
OPEN crsTbls
FETCH NEXT FROM crsTbls INTO @ObjectId, @SchemaId, @Type
WHILE (@@fetch_status = 0)
BEGIN
SELECT @sql = OBJECT_DEFINITION(@ObjectId)
IF (OBJECT_NAME(@ObjectId) LIKE ('%Fact%'))
BEGIN
IF NOT EXISTS(SELECT 1 FROM sys.partitions SP LEFT OUTER JOIN sys.indexes IX ON sp.object_id = ix.object_id and sp.index_id = ix.index_id
WHERE sp.data_compression > 0 AND sp.object_id = @ObjectId)
BEGIN
INSERT INTO #FactPageCompression (Name, ObjectType) VALUES (SCHEMA_NAME(@SchemaId) + '.' + OBJECT_NAME(@ObjectId), @Type)
END
END
FETCH next FROM crsTbls INTO @ObjectId, @SchemaId, @Type
END
CLOSE crsTbls
DEALLOCATE crsTbls
-- Check for tables that need page compression
SELECT
SCHEMA_NAME(sOBJ.Schema_Id) + '.' + sOBJ.name AS [Name],
sOBJ.Type_Desc AS ObjectType,
'Table Compression' AS Category,
'Use Page Compression on all Tables containing over 1000 rows' AS Description
INTO #TablesNeedingPageCompression
FROM
#objects AS sOBJ
INNER JOIN sys.partitions AS sPTN ON sOBJ.object_id = sPTN.object_id
WHERE
sOBJ.type = 'U'
AND sPTN.Rows >= 1000
AND sPTN.data_compression = 0
AND SCHEMA_NAME(sOBJ.schema_id) = @SchemaName
ORDER BY [Name]
-- Clustered Index needed
SELECT SCHEMA_NAME(o.Schema_Id) + '.' + o.name AS [Name],
o.Type_Desc AS ObjectType,
'Clustered Index' AS Category,
'This table does not have a clustered index, verify if this needs a clustered index or not. This helps JOINs, WHERE operations and Order/Group By clauses' AS Description
INTO #ClusterIndex
FROM sys.indexes i
INNER JOIN #objects o ON i.object_id = o.object_id
WHERE o.type_desc = 'USER_TABLE'
AND i.type_desc = 'HEAP' -- determine which tables in our database are a 'heap', meaning they do not have a clustered index. https://www.mssqltips.com/sqlservertip/2510/sql-server-tables-without-a-clustered-index/
AND SCHEMA_NAME(o.schema_id) = @SchemaName
AND OBJECT_NAME(o.Object_ID) NOT LIKE ('%Fact%')
ORDER BY o.name
-- Check column size
SELECT SCHEMA_NAME(o.Schema_Id) + '.' + TABLE_NAME as Name,
o.Type_Desc AS ObjectType,
'Column Size' AS Category,
'Keep the columns short (data size), verify that the columns truly need to be MAX' AS Description
INTO #ColumnSize
FROM INFORMATION_SCHEMA.COLUMNS i
INNER JOIN #objects o ON i.TABLE_NAME = OBJECT_NAME(o.object_id)
WHERE TABLE_SCHEMA = @SchemaName AND CHARACTER_MAXIMUM_LENGTH = -1
-- Populate results tables
-- Severity
-- 3 - High
-- 2 - Medium
-- 1 - Low
IF ((SELECT COUNT(*) FROM #FactPageCompression) > 0)
BEGIN
INSERT INTO #Results (Name, ObjectType, Category, Description, Severity)
SELECT Name, ObjectType, 'Table Compression' AS Category, 'Use Page Compression on all Fact Tables' AS Description, 3 AS Severity FROM #FactPageCompression
END
IF ((SELECT COUNT(*) FROM #TablesNeedingPageCompression) > 0)
BEGIN
INSERT INTO #Results (Name, ObjectType, Category, Description, Severity)
SELECT Name, ObjectType, Category, Description, 2 AS Severity FROM #TablesNeedingPageCompression
END
IF ((SELECT COUNT(*) FROM #ClusterIndex) > 0)
BEGIN
INSERT INTO #Results (Name, ObjectType, Category, Description, Severity)
SELECT Name, ObjectType, Category, Description, 3 AS Severity FROM #ClusterIndex
END
IF ((SELECT COUNT(*) FROM #ColumnSize) > 0)
BEGIN
INSERT INTO #Results (Name, ObjectType, Category, Description, Severity)
SELECT Name, ObjectType, Category, Description, 1 AS Severity FROM #ColumnSize
END
SELECT Name, CASE WHEN Severity = 3 THEN 'High'
WHEN Severity = 2 THEN 'Medium'
WHEN Severity = 1 THEN 'Low' ELSE 'N/A' END AS Severity,
ObjectType, Category, Description
FROM #Results
ORDER BY Name, Category, ObjectType
END
GO
---------------------------------------------
-- dbo.procFixSelfModelLinks
CREATE proc [dbo].[procFixSelfModelLinks]
@modelguid uniqueidentifier
as
set nocount on
--delete those for wrong tempaltes or dead plans
delete
emfmodeldatalink
from
emfmodeldatalink
where
not exists
( select 1
from
xplan p
left join emfmodeltemplatelinksource ls on p.modeltemplateguid = ls.modeltemplateguid
where
emfmodeldatalink.modelguid = p.planguid
and emfmodeldatalink.linksourceguid = ls.linksourceguid
and p.planguid = @modelguid
)
and modelguid = @modelguid
--plan other than self for one marked self
update
emfmodeldatalink
set
parentmodelguid = modelguid
where
parentmodelguid <> modelguid
and linksourceguid in (select linksourceguid from emfmodeltemplatelinksource where isself = 1)
and modelguid = @modelguid
--missing for correct template
insert into emfmodeldatalink (linksourceguid, modelguid, parentmodelguid)
select
ls.linksourceguid, p.planguid, p.planguid
from
xplan p
inner join emfmodeltemplatelinksource ls on p.modeltemplateguid = ls.modeltemplateguid and ls.isself = 1
where
not exists(
select 1
from
emfmodeldatalink mdl
where
mdl.modelguid = p.planguid
and mdl.linksourceguid = ls.linksourceguid
)
and p.planguid = @modelguid
GO
---------------------------------------------
-- dbo.procFixSelfModelLinksAll
create proc [dbo].[procFixSelfModelLinksAll]
@debug bit = 0
as
if @debug = 0
set nocount on
--delete those for wrong tempaltes or dead plans
delete
emfmodeldatalink
from
emfmodeldatalink
where
not exists
( select 1
from
xplan p
left join emfmodeltemplatelinksource ls on p.modeltemplateguid = ls.modeltemplateguid
where
emfmodeldatalink.modelguid = p.planguid
and emfmodeldatalink.linksourceguid = ls.linksourceguid
)
--plan other than self for one marked self
update
emfmodeldatalink
set
parentmodelguid = modelguid
where
parentmodelguid <> modelguid
and linksourceguid in (select linksourceguid from emfmodeltemplatelinksource where isself = 1)
--missing for correct template
insert into emfmodeldatalink (linksourceguid, modelguid, parentmodelguid)
select
ls.linksourceguid, p.planguid, p.planguid
from
xplan p
inner join emfmodeltemplate mt on p.modeltemplateguid = mt.modeltemplateguid
inner join emfmodeltemplatelinksource ls on mt.modeltemplateguid = ls.modeltemplateguid and ls.isself = 1
left join emfmodeldatalink mdl on mdl.linksourceguid = ls.linksourceguid and mdl.modelguid = p.planguid
where
mdl.modelguid is null
GO
---------------------------------------------
-- dbo.procFixSelfModelLinksAllIncludingNonSelf
create proc [dbo].[procFixSelfModelLinksAllIncludingNonSelf]
@debug bit = 0
as
if @debug = 0
set nocount on
--delete those for wrong tempaltes or dead plans
delete
emfmodeldatalink
from
emfmodeldatalink
where
not exists
( select 1
from
xplan p
left join emfmodeltemplatelinksource ls on p.modeltemplateguid = ls.modeltemplateguid
where
emfmodeldatalink.modelguid = p.planguid
and emfmodeldatalink.linksourceguid = ls.linksourceguid
)
--plan other than self for one marked self
update
emfmodeldatalink
set
parentmodelguid = modelguid
where
parentmodelguid <> modelguid
and linksourceguid in (select linksourceguid from emfmodeltemplatelinksource )
--missing for correct template
insert into emfmodeldatalink (linksourceguid, modelguid, parentmodelguid)
select
ls.linksourceguid, p.planguid, p.planguid
from
xplan p
inner join emfmodeltemplate mt on p.modeltemplateguid = mt.modeltemplateguid
inner join emfmodeltemplatelinksource ls on mt.modeltemplateguid = ls.modeltemplateguid
left join emfmodeldatalink mdl on mdl.linksourceguid = ls.linksourceguid and mdl.modelguid = p.planguid
where
mdl.modelguid is null
GO
---------------------------------------------
-- dbo.procFixZZTables
CREATE PROCEDURE [dbo].[procFixZZTables]
@DebugMode bit = 0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @zzMDCGUID uniqueidentifier
DECLARE @mdcName nvarchar(max)
DECLARE @zzMDCtablename nvarchar(36)
-- DECLARE @zzDIMcursor nvarchar(256)
-- DECLARE @zzDIMcolumnname nvarchar(256)
DECLARE @modelTemplateMappingTableName nvarchar(256)
DECLARE @modelDataTableName nvarchar(256)
-- DECLARE @dimensionName as nvarchar(256)
-- DECLARE @dimensionGUID as uniqueidentifier
-- DECLARE @fixSQL as nvarchar(max)
DECLARE zztable CURSOR LOCAL FAST_FORWARD
FOR SELECT NAME, MODELDATACONFIGGUID FROM EMFMODELDATACONFIG
OPEN zztable
FETCH NEXT FROM zztable INTO @mdcName, @zzMDCGUID
WHILE @@FETCH_STATUS = 0
BEGIN
--SET @zztable_query = 'ALTER TABLE ' + @zztable_name + ' ADD [MAPPINGTYPE] int NOT NULL Default(0) WITH VALUES'
--EXECUTE sp_executesql @zztable_query
SET @zzMDCtablename = REPLACE(@zzMDCGUID,'-','_')
SET @modelTemplateMappingTableName = 'zzEMFModelTemplateMapping_' + @zzMDCtablename
if (select count(*) from sysobjects where xtype='u' and name like @modelTemplateMappingTableName) = 0
PRINT @modelTemplateMappingTableName + ' table is not present'
else begin
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'MODELTEMPLATEGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'CELLGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'SOURCEGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureDimensionColumnsInTable 'dbo', @modelTemplateMappingTableName, @zzMDCGUID, @DebugMode, 1
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'MEASUREGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'WORKSHEETGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'ROW', 'int', '0', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'COL', 'int', '0', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'ISREADONLY', 'bit', '0', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'IsLocked', 'bit', '0', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'IsReadFromDB', 'bit', '1', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'IsWrittenToDB', 'bit', '1', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'IsUserMapped', 'bit', '1', @DebugMode
exec procEnsureColumnInTableCopyFromOther 'dbo', @modelTemplateMappingTableName ,'RowDesigner', 'int', '0', 'Row', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelTemplateMappingTableName ,'AssumptionType', 'int', '0', @DebugMode
exec procEnsureColumnNotInTable 'dbo', @modelTemplateMappingTableName, 'riskvariabletemplateguid', @DebugMode
end
SET @modelDataTableName = 'zzEMFModelData_' + @zzMDCtablename
if (select count(*) from sysobjects where xtype='u' and name like @modelDataTableName) = 0
PRINT @modelDataTableName + ' table is not present'
else begin
--exec procEnsureColumnInTable @modelDataTableName ,'MODELGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureDimensionColumnsInTable 'dbo', @modelDataTableName, @zzMDCGUID, @DebugMode, 0
exec procEnsureColumnInTable 'dbo', @modelDataTableName ,'MEASUREGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelDataTableName ,'VALUE', 'float', '0', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelDataTableName ,'FORMULA', 'varchar(1024)', '''''', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelDataTableName ,'STRINGVALUE', 'varchar(1024)', '''''', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelDataTableName ,'HISTORYITEMGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelDataTableName ,'SUBTABLEROWGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelDataTableName ,'DATAROWGUID', 'uniqueidentifier', 'newid()', @DebugMode
exec procEnsureColumnInTable 'dbo', @modelDataTableName ,'ISACTIVE', 'bit', '1', @DebugMode
exec procEnsureColumnNotInTable 'dbo', @modelDataTableName, 'riskvariableguid', @DebugMode
end
-- DECLARE zzdimensions CURSOR LOCAL FAST_FORWARD
-- FOR SELECT SLM.LISTGUID, SLM.NAME, UPPER('G' + REPLACE(cast(SLM.LISTGUID as varchar(36)),'-','_')) FROM dbo.EMFModelDataConfigDimensionLink MDCDL JOIN SECURELIST SLM ON MDCDL.DIMENSIONGUID=SLM.LISTGUID WHERE MDCDL.MODELDATACONFIGGUID = @zzMDCGUID
-- OPEN zzdimensions
-- FETCH NEXT FROM zzdimensions INTO @dimensionGUID, @dimensionName, @zzDIMcursor
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- SET @zzDIMcolumnname = @zzDIMcursor --+ 'GUID'
-- SET @fixSQL = 'DELETE FROM emfmodeldataconfigdimensionlink WHERE DIMENSIONGUID = ''' + cast(@dimensionGUID as varchar(36)) + ''' and MODELDATACONFIGGUID = ''' + cast(@zzMDCGUID as varchar(36)) + ''''
-- IF (SELECT count(*) FROM sysobjects JOIN syscolumns ON sysobjects.id = syscolumns.id WHERE sysobjects.xtype='U' AND (sysobjects.name like @modelDataTableName or sysobjects.name like @modelMappingTableName or sysobjects.name like @modelTemplateMappingTableName)and syscolumns.name like @zzDIMcolumnname) <> 3
-- --PRINT ' ' + @zzDIMcolumnname + ' is present'
-- --ELSE
-- PRINT @fixSQL + ' --' + cast(@zzMDCGUID as varchar(36)) + ' (' + @mdcName + ') - ' + @zzDIMcolumnname + ' (' + @dimensionName + ') is not present in both ModelData and ModelMapping'
--
--
-- FETCH NEXT FROM zzdimensions INTO @dimensionGUID, @dimensionName, @zzDIMcursor
-- END
-- CLOSE zzdimensions
-- DEALLOCATE zzdimensions
--
FETCH NEXT FROM zztable INTO @mdcName, @zzMDCGUID
END
CLOSE zztable
DEALLOCATE zztable
END
GO
---------------------------------------------
-- dbo.procFormDataCreateMissing
CREATE proc [dbo].[procFormDataCreateMissing]
@plantypeguid uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@isdebug bit = 0
as
--this proc exists for backwards compatibility only
return
GO
---------------------------------------------
-- dbo.procFormField10Delete
CREATE PROCEDURE [dbo].[procFormField10Delete]
@FormFieldGUID uniqueidentifier
AS
BEGIN
if((select count(*) from FEFormField where FormFieldGUID = @FormFieldGUID) = 0) begin
return
end
--remove from forms
declare @placeholder varchar(128)
select @placeholder = '' from FEFormField where FormFieldGUID = @FormFieldGUID
update FEFormSection set HTMLDesign = replace(HTMLDesign, @placeholder, ''), HTML = replace(HTML, @placeholder, '') where HTMLDesign like '%' + @placeholder + '%'
--remove data
delete from FEFormData where FormFieldGUID = @FormFieldGUID
--remove form field mappings
delete from EMFModelTemplateFormFieldMapping where FormFieldGUID = @FormFieldGUID
--remove custom script
delete from CustomScript where CustomScriptGUID=(select sourceguid from FEFormField where FormFieldGUID = @FormFieldGUID)
--remove gridsettings
delete from GridSetting where ColumnID='G' + replace(cast(@FormFieldGUID as varchar(36)), '-', '_')
--remove field
delete from FEFormField where FormFieldGUID = @FormFieldGUID
END
GO
---------------------------------------------
-- dbo.procFormFieldCalculationActionTask
CREATE PROC [dbo].[procFormFieldCalculationActionTask]
@isDebugOnly bit = 0
AS
SET NOCOUNT ON
DECLARE @sql varchar(max);
SET @sql = '
DECLARE @statusCode INT;
SET @statusCode = 0;
EXEC [dbo].[procCreateTask]
@taskTypeName = ''Strata.CS.Jazz.Biz.FormEngine20.ComputedFields.ComputedFieldControllerTask, Strata.CS.Jazz.Biz'',
@contextXML = ''1procFormFieldCalculationActionTask'',
@taskSource = ''procFormFieldCalculationActionTask'',
@statusCode = @statusCode OUTPUT;
IF @statusCode < 200 OR @statusCode > 299
BEGIN
RAISERROR(''Failed to insert to Hangfire'',16,1);
END;
';
IF (@isDebugOnly = 0) BEGIN
EXEC (@sql)
END ELSE BEGIN
PRINT @sql
END
GO
---------------------------------------------
-- dbo.procFormFieldCalculationRefresh
CREATE PROCEDURE [dbo].[procFormFieldCalculationRefresh]
@formfieldguid uniqueidentifier,
@entityexpression nvarchar(max) = '',
@directoryrefresh bit = 0,
@refreshmodefilter int = 0
AS
--for backwards compatibility, refresh all fields tied to this formfieldguid
declare @allfields nvarchar(max)
select @allfields = dbo.StrAggr(cast(FormFieldGUID as nvarchar(36)), ',', '') from [dbo].[FE2FormField] (readuncommitted) where FormFieldGUID = @formfieldguid or OldFormFieldGUID = @formfieldguid
if(len(@allfields) > 0) begin
insert into [dbo].[FE2FormFieldRefreshRequest] (FormFieldGUIDCSV, PlanLookupSQL) values(@allfields, @entityexpression)
exec procFormFieldCalculationActionTask
end
GO
---------------------------------------------
-- dbo.procFormFieldCalculationRefreshAll
CREATE PROCEDURE [dbo].[procFormFieldCalculationRefreshAll]
@plantypeguid uniqueidentifier
AS
insert into [dbo].[FE2FormFieldRefreshRequest] (PlanTypeGUID) values(@plantypeguid)
exec procFormFieldCalculationActionTask
GO
---------------------------------------------
-- dbo.procFormFieldCalculationRefreshAllByEntity
CREATE PROCEDURE [dbo].[procFormFieldCalculationRefreshAllByEntity]
@entityexpression nvarchar(max),
@isdebug bit = 0
AS
insert into [dbo].[FE2FormFieldRefreshRequest] (PlanLookupSQL) values(@entityexpression)
exec procFormFieldCalculationActionTask @isdebug
GO
---------------------------------------------
-- dbo.procFormFieldCalculationRefreshByPlanType
CREATE PROCEDURE [dbo].[procFormFieldCalculationRefreshByPlanType]
@formfieldguid uniqueidentifier,
@plantypeguid uniqueidentifier,
@entityexpression nvarchar(max) = '',
@createmissing bit = 1,
@isbulk bit = 0
AS
insert into [dbo].[FE2FormFieldRefreshRequest] (FormFieldGUIDCSV, PlanTypeGUID, PlanLookupSQL) select cast(@formfieldguid as nvarchar(36)), @plantypeguid, @entityexpression
exec procFormFieldCalculationActionTask
GO
---------------------------------------------
-- dbo.procFormFieldCalculationRefreshMultiple
CREATE PROCEDURE [dbo].[procFormFieldCalculationRefreshMultiple]
@formfieldguidCSV nvarchar(max),
@entityexpression nvarchar(max) = '',
@directoryrefresh bit = 0,
@refreshmodefilter int = 0
AS
if(len(@formfieldguidCSV) > 0) begin
insert into [dbo].[FE2FormFieldRefreshRequest] (FormFieldGUIDCSV, PlanLookupSQL) values(@formfieldguidCSV, @entityexpression)
exec procFormFieldCalculationActionTask
end
GO
---------------------------------------------
-- dbo.procFormFieldCalculationRefreshNoSync
CREATE proc [dbo].[procFormFieldCalculationRefreshNoSync]
@planGUIDList nvarchar(max),
@refreshMode int = 2
as
--this procedure is obsolete given FE20, but still exists for backwards compatibility
RETURN
GO
---------------------------------------------
-- dbo.procFormFieldCalculationRefreshNoSyncAll
CREATE proc [dbo].[procFormFieldCalculationRefreshNoSyncAll]
@planTypeGUID uniqueidentifier,
@refreshMode int = 2
as
--this procedure is obsolete given FE20, but still exists for backwards compatibility
RETURN
GO
---------------------------------------------
-- dbo.procFormFieldCalculationTest
create proc dbo.procFormFieldCalculationTest
@formfieldguid uniqueidentifier
as
declare @refreshsql nvarchar(max)
select @refreshsql = LastRefreshSQL from [dbo].[viewFE2FormFieldComputed] where FormFieldGUID = @formfieldguid
if (@refreshsql is null) begin
print 'Field not found.'
return
end
if (len(ltrim(rtrim(@refreshsql))) = 0) begin
print 'Refresh SQL not found. Please go to Admin Tools and refresh this field with test mode enabled, and then try again.'
return
end
print @refreshsql
exec(@refreshsql)
GO
---------------------------------------------
-- dbo.procFormHTMLPrint
create procedure procFormHTMLPrint
@formdefguid uniqueidentifier
as
declare @html nvarchar(max)
declare crsSections cursor for select html from feformsection where formdefguid=@formdefguid order by parentformsectionguid, displayorder
open crsSections
fetch next from crsSections into @html
while(@@fetch_status = 0) begin
print @html
fetch next from crsSections into @html
end
close crsSections
deallocate crsSections
GO
---------------------------------------------
-- dbo.procGenerateDataMessages
CREATE PROCEDURE [dbo].[procGenerateDataMessages]
@MAXMESSAGESPERTOPIC int,
@IGNORETOPICGUID varchar(36) = ''
AS
BEGIN
SET NOCOUNT ON
declare @authorguid uniqueidentifier
declare @emptyguid varchar(36)
declare @nummessages int
declare @count int
declare @TOPICGUID uniqueidentifier
set @emptyguid = '00000000-0000-0000-0000-000000000000'
-- loop through all topics and create respective messages
DECLARE crsTopics cursor LOCAL FAST_FORWARD FOR select topicguid from msgtopic
OPEN crsTopics
FETCH NEXT FROM crsTopics into @TOPICGUID
WHILE (@@FETCH_STATUS = 0)
BEGIN
If (@IGNORETOPICGUID <> @TOPICGUID)
BEGIN
SET @nummessages = ROUND(@MAXMESSAGESPERTOPIC * rand(), 0)
If (@nummessages = 0)
BEGIN
SET @nummessages = 1
END
PRINT cast(@nummessages as varchar) + ' messages created for topicguid = ' --+ cast(@TOPICGUID as varchar)
SET @count = 1
WHILE (@count <= @nummessages)
BEGIN
SELECT @authorguid = userguid from userprofile order by newid()
INSERT INTO MSGMESSAGE(messageguid, topicguid, messagetypeguid, replytomsgguid, subject, body, authorguid, datecreated, datesent, hasattachments)
SELECT top 1 newid(), @TOPICGUID, messagetypeguid, replytomsgguid, subject, body, @authorguid, dateadd(hour, @count * (24 - @count) * rand(), datecreated), datesent, hasattachments from msgmessage order by newid()
SET @count = @count + 1
END
PRINT @TOPICGUID
END
FETCH NEXT FROM crsTopics into @TOPICGUID
END
CLOSE crsTopics
DEALLOCATE crsTopics
SET NOCOUNT OFF
END
GO
---------------------------------------------
-- dbo.procGenerateDataTopics
CREATE PROCEDURE [dbo].[procGenerateDataTopics]
@NUMTOPICS int,
@COPYTOPICGUID varchar(36) = ''
AS
BEGIN
SET NOCOUNT ON
declare @authorguid uniqueidentifier
declare @emptyguid varchar(36)
set @emptyguid = '00000000-0000-0000-0000-000000000000'
declare @i int
set @i = 0
while (@i < @NUMTOPICS) begin
--copy an existing x number of times
if (@COPYTOPICGUID <> '')
BEGIN
SELECT @COPYTOPICGUID = topicguid from msgtopic where topicguid = @COPYTOPICGUID
if (@COPYTOPICGUID is not null)
BEGIN
SELECT @authorguid = userguid from userprofile order by newid()
insert into msgtopic (topicguid, forumguid, authorguid, [name], description, topictype, datecreated)
select newid(), forumguid, @authorguid, 'Copy of ' + [name] + cast(@i as varchar), description, topictype, dateadd(day, @i + 1, datecreated) from msgtopic where topicguid = @COPYTOPICGUID
PRINT 'Topic created'
END
END
else
BEGIN
SELECT @authorguid = userguid from userprofile order by newid()
--currently can only create private message topics
insert into msgtopic (topicguid, forumguid, authorguid, [name], description, topictype, datecreated) values(newid(), @emptyguid, @authorguid, newid(), newid(), 2, getdate())
END
set @i = @i + 1
end
SET NOCOUNT OFF
END
GO
---------------------------------------------
-- dbo.procGetCompactedUserACL
CREATE PROCEDURE [dbo].[procGetCompactedUserACL]
@UserGUID uniqueidentifier
AS
IF (NOT EXISTS(SELECT 1 FROM UserProfile (readuncommitted) WHERE UserGUID = @UserGUID)) BEGIN RETURN END
--everything user has access to
CREATE TABLE #UserACL(LootGroupPrefix nvarchar(100), LootID nvarchar(128), IsFullAccess bit, IsReadable bit, IsWritable bit, IsSecurable bit, IsDeletable bit, IsCreatable bit)
INSERT #UserACL
SELECT
LootGroupPrefix,
LootID,
CAST(0 as bit) as IsFullAccess,
IsReadable,
IsWritable,
IsSecurable,
IsDeletable,
IsCreatable
FROM
dbo.ufn_GetS3ACLByUserGuid(@UserGUID)
--loot groups where the user has access to everything
CREATE TABLE #FullAccess(LootGroupPrefix nvarchar(100), LootID nvarchar(128), IsFullAccess bit, IsReadable bit, IsWritable bit, IsSecurable bit, IsDeletable bit, IsCreatable bit)
INSERT #FullAccess
SELECT
L.LootGroupPrefix,
'' as LootID,
CAST(1 as bit) as IsFullAccess,
CAST(1 as bit) as IsReadable,
CAST(1 as bit) as IsWritable,
CAST(1 as bit) as IsSecurable,
CAST(1 as bit) as IsDeletable,
CAST(1 as bit) as IsCreatable
FROM
S3Loot L (readuncommitted)
GROUP BY
L.LootGroupPrefix
HAVING
(select COUNT(*) from #UserACL acl where acl.LootGroupPrefix = L.LootGroupPrefix and acl.IsReadable = 1 and acl.IsWritable = 1 and acl.IsCreatable = 1 and acl.IsDeletable = 1 and acl.IsSecurable = 1) >= COUNT(*)
--compact acl based on full access
DELETE FROM #UserACL where LootGroupPrefix in(select LootGroupPrefix from #FullAccess)
--include items user has no access to
INSERT #UserACL
SELECT
L.LootGroupPrefix,
L.LootID as LootID,
CAST(0 as bit) as IsFullAccess,
CAST(0 as bit) as IsReadable,
CAST(0 as bit) as IsWritable,
CAST(0 as bit) as IsSecurable,
CAST(0 as bit) as IsDeletable,
CAST(0 as bit) as IsCreatable
FROM
S3Loot L (readuncommitted)
WHERE
not exists (select 1 from #UserACL acl where acl.LootID = L.LootID)
and not exists(select 1 from #FullAccess fa where fa.LootGroupPrefix = L.LootGroupPrefix)
--return acl + full access groups
SELECT * FROM #UserACL
UNION ALL
SELECT * FROM #FullAccess
--clean up
DROP TABLE #UserACL
DROP TABLE #FullAccess
GO
---------------------------------------------
-- dbo.procGetDimensionAttributesToReportRelationInfo
CREATE proc [dbo].[procGetDimensionAttributesToReportRelationInfo]
as
set nocount on
declare @departmentDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'Department')
declare @capProjectDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'CAP Project')
declare @fundingReleaseDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'CAP Funding Release')
declare @requisitionDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'CAP Requisition')
declare @substitutionSourceDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'CAP Substitution')
declare @longRangePlanDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'SP Long Range Plan')
declare @rollingForecastPlanDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'SP Rolling Forecast Plan')
declare @longRangeServiceLineDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'SP Long Range Service Line')
declare @rollingServiceLinePlanDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'SP Rolling Service Line Plan')
declare @departmentalBudgetDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'OB Departmental Budget')
declare @departmentMrDimGuid uniqueidentifier = (select DimensionGUID from ScoreDimension where GlobalID = 'MR Department')
declare @attributeGuids table (AttributeGUID uniqueidentifier)
declare @departmentAttributeGuids table (AttributeGUID uniqueidentifier)
insert into @departmentAttributeGuids
select AttributeGUID from viewScoreAttribute where DimensionGUID = @departmentDimGuid
--department attributes
insert into @attributeGuids
select AttributeGUID from @departmentAttributeGuids
--department mr attributes
declare @departmentMrAttributeGuids table (AttributeGUID uniqueidentifier, DepartmentAttributeGUID uniqueidentifier)
insert into @departmentMrAttributeGuids
select distinct mr.AttributeGUID, d.AttributeGUID
from viewScoreAttribute mr
join viewScoreAttribute d on d.DimensionGUID = @departmentDimGuid
and d.SqlColumnName=mr.SqlColumnName
where mr.DimensionGUID = @departmentMrDimGuid
insert into @attributeGuids
select AttributeGUID from @departmentMrAttributeGuids
--ob departmental budget
declare @obAttributeGuids table (AttributeGUID uniqueidentifier, InferredAttributeGuid uniqueidentifier)
insert into @obAttributeGuids
select AttributeGUID, InferredAttributeGuid from viewScoreAttribute
where DimensionGUID = @departmentalBudgetDimGuid AND InferredAttributeGuid IN (select AttributeGUID from @departmentAttributeGuids)
insert into @attributeGuids
select AttributeGUID from @obAttributeGuids
--sp long Range Plan
declare @splongRangeAttributeGuids table (AttributeGUID uniqueidentifier, InferredAttributeGuid uniqueidentifier)
insert into @splongRangeAttributeGuids
select AttributeGUID, InferredAttributeGuid from viewScoreAttribute
where DimensionGUID = @longRangePlanDimGuid AND InferredAttributeGuid IN (select AttributeGUID from @departmentAttributeGuids)
insert into @attributeGuids
select AttributeGUID from @splongRangeAttributeGuids
--sp rolling Forecast Plan
declare @sprollingForecastAttributeGuids table (AttributeGUID uniqueidentifier, InferredAttributeGuid uniqueidentifier)
insert into @sprollingForecastAttributeGuids
select AttributeGUID, InferredAttributeGuid from viewScoreAttribute
where DimensionGUID = @rollingForecastPlanDimGuid AND InferredAttributeGuid IN (select AttributeGUID from @departmentAttributeGuids)
insert into @attributeGuids
select AttributeGUID from @sprollingForecastAttributeGuids
--sp long Range Service Line
declare @splongRangeServiceLineAttributeGuids table (AttributeGUID uniqueidentifier, InferredAttributeGuid uniqueidentifier)
insert into @splongRangeServiceLineAttributeGuids
select AttributeGUID, InferredAttributeGuid from viewScoreAttribute
where DimensionGUID = @longRangeServiceLineDimGuid AND InferredAttributeGuid IN (select AttributeGUID from @departmentAttributeGuids)
insert into @attributeGuids
select AttributeGUID from @splongRangeServiceLineAttributeGuids
--sp rolling Service Line Plan
declare @sprollingServiceLinePlanAttributeGuids table (AttributeGUID uniqueidentifier, InferredAttributeGuid uniqueidentifier)
insert into @sprollingServiceLinePlanAttributeGuids
select AttributeGUID, InferredAttributeGuid from viewScoreAttribute
where DimensionGUID = @rollingServiceLinePlanDimGuid AND InferredAttributeGuid IN (select AttributeGUID from @departmentAttributeGuids)
insert into @attributeGuids
select AttributeGUID from @sprollingServiceLinePlanAttributeGuids
--cap Project
declare @capProjectAttributeGuids table (AttributeGUID uniqueidentifier, InferredAttributeGuid uniqueidentifier)
insert into @capProjectAttributeGuids
select AttributeGUID, InferredAttributeGuid from viewScoreAttribute
where DimensionGUID = @capProjectDimGuid AND InferredAttributeGuid IN (select AttributeGUID from @departmentAttributeGuids)
insert into @attributeGuids
select AttributeGUID from @capProjectAttributeGuids
--cap funding Release
declare @capfundingReleaseAttributeGuids table (AttributeGUID uniqueidentifier, InferredAttributeGuid uniqueidentifier)
insert into @capfundingReleaseAttributeGuids
select attr.AttributeGUID, cattr.InferredAttributeGuid from viewScoreAttribute attr
join @capProjectAttributeGuids cattr on cattr.AttributeGUID = attr.InferredAttributeGuid
where DimensionGUID = @fundingReleaseDimGuid
insert into @attributeGuids
select AttributeGUID from @capfundingReleaseAttributeGuids
--cap requisition
declare @caprequisitionAttributeGuids table (AttributeGUID uniqueidentifier, InferredAttributeGuid uniqueidentifier)
insert into @caprequisitionAttributeGuids
select attr.AttributeGUID, attr.InferredAttributeGuid from viewScoreAttribute attr
join @capProjectAttributeGuids cattr on cattr.AttributeGUID = attr.InferredAttributeGuid
where DimensionGUID = @requisitionDimGuid
insert into @attributeGuids
select AttributeGUID from @caprequisitionAttributeGuids
--cap substitution
declare @capsubstitutionAttributeGuids table (AttributeGUID uniqueidentifier, InferredAttributeGuid uniqueidentifier)
insert into @capsubstitutionAttributeGuids
select attr.AttributeGUID, attr.InferredAttributeGuid from viewScoreAttribute attr
join @capProjectAttributeGuids cattr on cattr.AttributeGUID = attr.InferredAttributeGuid
where DimensionGUID = @substitutionSourceDimGuid
insert into @attributeGuids
select AttributeGUID from @capsubstitutionAttributeGuids
-- Result table to return
declare @result table (AttributeGUID uniqueidentifier, ReportGUID uniqueidentifier, FrameworkID tinyint)
declare @frameworkInfo table (FrameworkID tinyint, FrameworkName nvarchar(100), ReportFrameworkPrefix nvarchar(5))
insert into @frameworkInfo select (select FrameworkID from fw.DimFramework where Name = 'Capital Management'), 'Capital Management', 'CAP'
insert into @frameworkInfo select (select FrameworkID from fw.DimFramework where Name = 'Operating Budgeting'), 'Operating Budgeting', 'OB'
insert into @frameworkInfo select (select FrameworkID from fw.DimFramework where Name = 'Management Reporting'), 'Management Reporting', 'MR'
insert into @frameworkInfo select (select FrameworkID from fw.DimFramework where Name = 'Strategic Planning'), 'Strategic Planning', 'SP'
insert into @frameworkInfo select (select FrameworkID from fw.DimFramework where Name = 'Productivity Reporting'), 'Productivity Reporting', 'PR'
insert into @frameworkInfo select (select FrameworkID from fw.DimFramework where Name = 'Decision Support'), 'Decision Support', 'DS'
-- Cursor configuration
declare @frameworkId tinyInt
declare @frameworkName nvarchar(100)
declare @prefix nvarchar(5)
declare crsFrameworks cursor fast_forward for
select FrameworkID, FrameworkName, ReportFrameworkPrefix
from @frameworkInfo
open crsFrameworks
fetch next from crsFrameworks into @frameworkId, @frameworkName, @prefix
while (@@fetch_status = 0)
begin
insert into @result
--ad hoc reports using the attribute for this framework
select
cast(ra.AttributeID as uniqueidentifier), r.ReportGUID, @frameworkId
from
REClientReportSectionAttribute ra
inner join REClientReportSectionLink sl on sl.ClientReportSectionGUID = ra.ClientReportSectionGUID
inner join REReport r on r.ReportGUID = sl.ReportGUID
inner join REClientReportDataSourceLink rdsl on r.ReportGUID = rdsl.ReportGUID
inner join DataView dv on rdsl.DataSourceGUID = dv.DataViewGUID
inner join Folder f on f.FolderGUID = r.FolderGUID
left join Folder pf on pf.FolderGUID = f.ParentFolderGUID
where
ra.AttributeID in (select cast(AttributeGUID as nvarchar(36)) from @attributeGuids)
and
(dv.Name like (@prefix + '%')
or (f.Name = @frameworkname or isnull(pf.Name, '') = @frameworkname))
insert into @result
--ad hoc reports using the attribute for this framework as filter
select
cast(ra.AttributeID as uniqueidentifier), r.ReportGUID, @frameworkId
from
REClientReportParameter ra
inner join REReport r on r.ReportGUID = ra.ReportGUID
inner join REClientReportDataSourceLink rdsl on r.ReportGUID = rdsl.ReportGUID
inner join DataView dv on rdsl.DataSourceGUID = dv.DataViewGUID
inner join Folder f on f.FolderGUID = r.FolderGUID
left join Folder pf on pf.FolderGUID = f.ParentFolderGUID
where
ra.AttributeID in (select cast(AttributeGUID as nvarchar(36)) from @attributeGuids)
and
(dv.Name like (@prefix + '%')
or (f.Name = @frameworkname or isnull(pf.Name, '') = @frameworkname))
insert into @result
--tabular detail reports using the attribute for this framework
select
ra.AttributeGUID, r.ReportGUID, @frameworkId
from
RESQLReportDisplayColumn dc
inner join RESQLReportSetup rs on rs.SQLReportSetupGUID = dc.SQLReportSetupGUID
inner join REReport r on r.ReportGUID = rs.ReportGUID
inner join RESQLReportRegisteredDimension rd on rd.DataViewGUID = rs.DataViewGUID
inner join RESQLReportRegisteredAttribute ra on ra.RegisteredDimensionGUID = rd.RegisteredDimensionGUID
inner join dbo.ScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
inner join DataView dv on rd.DataViewGUID = dv.DataViewGUID
inner join Folder f on f.FolderGUID = r.FolderGUID
left join Folder pf on pf.FolderGUID = f.ParentFolderGUID
where
ltrim(rtrim(dc.ColumnName)) = case when ltrim(rtrim(ra.ColumnAlias)) = '' then a.SQLColumnName else ltrim(rtrim(ra.ColumnAlias)) end
and ra.AttributeGUID in (select AttributeGUID from @attributeGuids)
and (dv.Name like (@prefix + '%')
or (f.Name = @frameworkname or isnull(pf.Name, '') = @frameworkname))
fetch next from crsFrameworks into @frameworkId, @frameworkName, @prefix
end
close crsFrameworks
deallocate crsFrameworks
declare @resultFinal table (AttributeGUID uniqueidentifier, ReportGUID uniqueidentifier, FrameworkID tinyint)
insert into @resultFinal
select distinct r.AttributeGUID, r.ReportGUID, r.FrameworkID
from @result r
join @departmentAttributeGuids d on d.AttributeGUID=r.AttributeGUID
insert into @resultFinal
select distinct d.DepartmentAttributeGUID, r.ReportGUID, r.FrameworkID
from @result r
join @departmentMrAttributeGuids d on d.AttributeGUID=r.AttributeGUID
insert into @resultFinal
select distinct d.InferredAttributeGuid, r.ReportGUID, r.FrameworkID
from @result r
join @obAttributeGuids d on d.AttributeGUID=r.AttributeGUID
insert into @resultFinal
select distinct d.InferredAttributeGuid, r.ReportGUID, r.FrameworkID
from @result r
join @splongRangeAttributeGuids d on d.AttributeGUID=r.AttributeGUID
insert into @resultFinal
select distinct d.InferredAttributeGuid, r.ReportGUID, r.FrameworkID
from @result r
join @sprollingForecastAttributeGuids d on d.AttributeGUID=r.AttributeGUID
insert into @resultFinal
select distinct d.InferredAttributeGuid, r.ReportGUID, r.FrameworkID
from @result r
join @splongRangeServiceLineAttributeGuids d on d.AttributeGUID=r.AttributeGUID
insert into @resultFinal
select distinct d.InferredAttributeGuid, r.ReportGUID, r.FrameworkID
from @result r
join @sprollingServiceLinePlanAttributeGuids d on d.AttributeGUID=r.AttributeGUID
insert into @resultFinal
select distinct d.InferredAttributeGuid, r.ReportGUID, r.FrameworkID
from @result r
join @capProjectAttributeGuids d on d.AttributeGUID=r.AttributeGUID
insert into @resultFinal
select distinct p.InferredAttributeGuid, r.ReportGUID, r.FrameworkID
from @result r
join @capfundingReleaseAttributeGuids d on r.AttributeGUID=d.AttributeGUID
join @capProjectAttributeGuids p on d.InferredAttributeGuid=p.AttributeGUID
insert into @resultFinal
select distinct p.InferredAttributeGuid, r.ReportGUID, r.FrameworkID
from @result r
join @caprequisitionAttributeGuids d on r.AttributeGUID=d.AttributeGUID
join @capProjectAttributeGuids p on d.InferredAttributeGuid=p.AttributeGUID
insert into @resultFinal
select distinct p.InferredAttributeGuid, r.ReportGUID, r.FrameworkID
from @result r
join @capsubstitutionAttributeGuids d on r.AttributeGUID=d.AttributeGUID
join @capProjectAttributeGuids p on d.InferredAttributeGuid=p.AttributeGUID
select distinct r.AttributeGUID, r.ReportGUID, r.FrameworkID
from @resultFinal r
order by AttributeGUID, FrameworkID
GO
---------------------------------------------
-- dbo.procGetInputDataByBatches
/*
**************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2022-08-17 HV JAZZ-41822 PR Metrics Definition - Select Standard Metrics - Productive Hours, UOS Staffing, Productive Hours per UOS
** 2 2022-10-13 KF JAZZ-44078 Charge Based Statistics Modals Performance Improvement
** 3 2023-10-10 KF JAZZ-61890 Technical - Convert pi.FactMetric and pi.FactMetricDaily Rowid and dependent objects to bigint
************************************************************
*/
CREATE PROCEDURE [dbo].[procGetInputDataByBatches]
@batchSize int = 10000,
@columnName nvarchar(100),
@tableAlias nvarchar(100),
@fromClause nvarchar(max),
@whereClause nvarchar(max),
@declareParameters nvarchar(max) = '',
@isDebug bit = 0
AS
DECLARE @columnNameWithAlias nvarchar(200)
set @columnNameWithAlias = @tableAlias + '.' + @columnName
DECLARE @sql nvarchar(max) = ''
IF @declareParameters IS NOT NULL AND @declareParameters != '' BEGIN
SET @sql = @sql + 'DECLARE
' + @declareParameters + '
'
END
SET @sql = @sql + '
IF OBJECT_ID(''tempdb..#inputData'') IS NOT NULL DROP TABLE #inputData
SELECT ' + @columnNameWithAlias + ', COUNT_BIG(*) AS RecordsCount, 0 AS BatchID INTO #inputData
FROM ' + @fromClause
IF NOT( @whereClause is null or @whereClause = '')
BEGIN
SET @sql = @sql + '
WHERE ' + @whereclause
END
SET @sql = @sql + '
GROUP BY ' + @columnNameWithAlias + '
-- Split data into batches
WHILE EXISTS (SELECT TOP 1 1 FROM #inputData WHERE BatchID = 0)
BEGIN
;WITH infoTable AS
(
SELECT
IPP.' + @columnName + ',
ROW_NUMBER() OVER (ORDER BY IPP.' + @columnName + ') AS RowNumber,
SUM(RecordsCount) OVER (ORDER BY IPP.' + @columnName + ') AS Total,
M.MaxBatchID+1 AS BatchID
FROM #inputData IPP
CROSS JOIN (SELECT MAX(BatchID) AS MaxBatchID FROM #inputData) M
WHERE IPP.BatchID = 0
)
UPDATE IPP
SET IPP.BatchID = MI.BatchID
FROM #inputData IPP
INNER JOIN infoTable MI ON MI.' + @columnName + ' = IPP.' + @columnName + '
WHERE MI.Total <= ' + cast(@BatchSize as nvarchar(100)) + ' OR MI.RowNumber = 1
END
select * from #inputData'
IF @isDebug = 1
BEGIN
PRINT (cast(@sql as ntext));
END
ElSE
BEGIN
EXEC (@sql);
END
GO
---------------------------------------------
-- dbo.procGetNextQueuedTask
CREATE PROCEDURE [dbo].[procGetNextQueuedTask]
@MinPriority int = 0,
@WhereClause varchar(MAX),
@WorkerID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
AS
DECLARE @sql varchar(MAX)
--SQL
SET @sql = 'BEGIN TRANSACTION;'
SET @sql = @sql + ' DECLARE @NEXTQUEUEDTASKGUID uniqueidentifier; '
SET @sql = @sql + 'SELECT TOP 1 @NEXTQUEUEDTASKGUID = t.TaskGUID FROM TETASK t WITH (updlock, rowlock, readpast) left join TEDISABLEDDATABASE ddb on t.dbconnectionguid = ddb.disableddbconnectionguid where ddb.disableddbconnectionguid is null and t.status <> 1 and t.status <> 4 and GETDATE() > t.NextRunTime'
IF (@WhereClause <> '') BEGIN
SET @sql = @sql + ' and ' + @WhereClause
END
SET @sql = @sql + ' and priority >= ' + cast(@MinPriority as varchar);
--Grouping
set @sql = @sql + ' and not exists ( select 1 from TETask T0 where T0.GroupingID <> '''' and T0.GroupingID = t.GroupingID and T0.GroupingIndex < t.GroupingIndex)';
set @sql = @sql + ' order by t.priority DESC, t.creationtime;'
SET @sql = @sql + ' UPDATE TETASK WITH (updlock, rowlock, readpast) SET STATUS=1, STARTTIME = getDate(), WorkerID=''' + cast(@WorkerID as varchar(36)) + ''' where TaskGUID = @NEXTQUEUEDTASKGUID;'
SET @sql = @sql + ' SELECT * FROM TETASK WITH (updlock, rowlock, readpast) where TaskGUID = @NextQUEUEDTASKGUID;'
SET @sql = @sql + ' COMMIT TRANSACTION;'
print @sql;
exec (@sql)
GO
---------------------------------------------
-- dbo.procGetNextQueuedTaskByPriority
CREATE PROCEDURE [dbo].[procGetNextQueuedTaskByPriority]
@Priority int
AS
DECLARE @TEMPTABLENAME varchar(38)
DECLARE @sql varchar(MAX)
SET @TEMPTABLENAME = '#' + dbo.GetSQLColumnSafeGuid(newid())
--insert next queued item (all non-executing tasks) into temp table
SET @sql = 'BEGIN TRAN; SELECT TOP 1 t.* INTO ' + @TEMPTABLENAME + ' FROM TETASK t left join TEDISABLEDDATABASE ddb on t.dbconnectionguid = ddb.disableddbconnectionguid where ddb.disableddbconnectionguid is null and status <> 1 and priority < ' + cast(@Priority as varchar) + ' order by priority, creationtime;'
-- if one task was entered into temp table, then
-- find taskguid from temp table and update real table with new status
-- return temp table
-- drop temp table
SET @sql = @sql + ' IF (SELECT COUNT(*) FROM ' + @TEMPTABLENAME + ') > 0 BEGIN '
SET @sql = @sql + ' DECLARE @NEXTQUEUEDTASKGUID uniqueidentifier;'
SET @sql = @sql + ' SELECT @NEXTQUEUEDTASKGUID = TASKGUID FROM ' + @TEMPTABLENAME + ';'
SET @sql = @sql + ' UPDATE TETASK SET STATUS = 1, STARTTIME = getdate() WHERE TASKGUID = @NEXTQUEUEDTASKGUID; '
SET @sql = @sql + ' SELECT * FROM ' + @TEMPTABLENAME + ';'
SET @sql = @sql + ' END'
SET @sql = @sql + ' DROP TABLE ' + @TEMPTABLENAME + ';'
SET @sql = @sql + ' COMMIT TRAN; '
exec (@sql)
GO
---------------------------------------------
-- dbo.procGetQueuedTaskCount
CREATE PROCEDURE [dbo].[procGetQueuedTaskCount]
@WhereClause varchar(4000)
AS
DECLARE @sql varchar(MAX)
SET @sql = ' select count(*) from TETask t with (updlock, rowlock, readpast) where ' + @WhereClause + ' and Status=0 and GetDate() > t.NextRunTime;'
exec(@sql);
GO
---------------------------------------------
-- dbo.procGetRelatedPlans
CREATE PROCEDURE procGetRelatedPlans
@PlanGUID UNIQUEIDENTIFIER
AS
BEGIN
SET NOCOUNT ON
DECLARE @keyAttributeGUID UNIQUEIDENTIFIER
DECLARE @keyColumnExpression NVARCHAR(MAX)
DECLARE @keyTableExpression NVARCHAR(MAX)
SELECT TOP 1
@keyAttributeGUID = sa.AttributeGUID,
@keyColumnExpression = sa.SQLColumnName,
@keyTableExpression = dbo.GetSQLTableExpression(dg.SchemaName, dg.ObjectName)
FROM XPlan p
JOIN PlanType pt ON pt.PlanTypeGUID = p.PlanTypeGUID
JOIN ScoreDimension d ON d.DimensionGUID = pt.DimensionGUID
JOIN ScoreDimensionGroup dg ON dg.DimensionGUID = d.DimensionGUID
JOIN ScoreAttribute sa ON sa.DimensionGroupGUID = dg.DimensionGroupGUID AND sa.AttributeGUID = d.DefaultKeyGUID
WHERE p.PlanGUID = @PlanGUID
DECLARE @planId NVARCHAR(MAX)
DECLARE @getIdSql NVARCHAR(MAX) =
'SELECT @planId = ' + @keyColumnExpression + ' FROM ' + @keyTableExpression + ' ' +
'WHERE MemberGUID = ''' + CAST(@PlanGUID AS NVARCHAR(36)) + ''''
EXEC sp_executesql @getIdSql, N'@planId NVARCHAR(MAX) OUTPUT', @planId = @planId OUTPUT
DROP TABLE IF EXISTS #child_plan_queries
SELECT
NEWID() AS QueryGUID,
dbo.GetSQLTableExpression(dg.SchemaName, dg.ObjectName) AS TableExpression,
sa.SQLColumnName AS ColumnExpression
INTO #child_plan_queries
FROM PlanType pt
JOIN ScoreDimension d ON d.DimensionGUID = pt.DimensionGUID
JOIN ScoreDimensionGroup dg ON dg.DimensionGUID = d.DimensionGUID
JOIN ScoreAttribute sa ON sa.DimensionGroupGUID = dg.DimensionGroupGUID
WHERE sa.ForeignKeyGUID = @keyAttributeGUID
DECLARE @sql NVARCHAR(MAX) = ''
WHILE (SELECT COUNT(1) FROM #child_plan_queries) > 0
BEGIN
DECLARE @queryGUID UNIQUEIDENTIFIER
DECLARE @tableExpression NVARCHAR(MAX) = ''
DECLARE @columnExpression NVARCHAR(MAX) = ''
DECLARE @childMemberGUID UNIQUEIDENTIFIER = dbo.GetZeroGUID()
SELECT TOP 1
@queryGUID = QueryGUID,
@tableExpression = TableExpression,
@columnExpression = ColumnExpression
FROM #child_plan_queries
ORDER BY TableExpression, ColumnExpression
DELETE #child_plan_queries WHERE QueryGUID = @queryGUID
SET @sql = @sql +
'SELECT MemberGUID AS PlanGUID ' +
'FROM ' + @tableExpression + ' ' +
'WHERE ' + @columnExpression + ' = ' + @planId + ' ' +
'UNION ALL '
END
SET @sql = TRIM('UNION ALL ' FROM @sql)
EXEC sp_executesql @sql
END
GO
---------------------------------------------
-- dbo.procGetScoreDimensionMember
CREATE proc [dbo].[procGetScoreDimensionMember]
@MemberGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
AS
declare @out table
(
MemberGUID uniqueidentifier,
DefaultAttribute nvarchar(max),
AttributeValue nvarchar(max),
DimensionGUID uniqueidentifier,
DimensionName nvarchar(max),
DimensionTable nvarchar(max)
)
declare @DimensionGUID uniqueidentifier
declare @DimensionName nvarchar(max)
declare @TableExpression nvarchar(max)
declare @DefaultAttributeFriendlyName nvarchar(max)
declare @DefaultAttributeColumnExpression nvarchar(max)
declare dimtables cursor local fast_forward for
select
SD.DimensionGUID,
SD.FriendlyName,
SD.SqlSchemaName + '.' + SD.SQLObjectName,
SA.FriendlyName,
SA.sqlcolumnname
from ScoreDimension SD
inner join ScoreAttribute SA on SA.AttributeGUID = SD.defaultlookupkeyguid
open dimtables
fetch next from dimtables into @DimensionGUID, @DimensionName, @TableExpression, @DefaultAttributeFriendlyName, @DefaultAttributeColumnExpression
while @@fetch_status = 0
begin
declare @wc nvarchar(max)
set @wc = ''
if @MemberGUID <> '00000000-0000-0000-0000-000000000000'
set @wc = ' where MemberGUID = ''' + cast(@MemberGUID as nvarchar(max)) + ''''
declare @sql nvarchar(max)
set @sql = 'select MemberGUID, ''' + @DefaultAttributeFriendlyName + ''' as DefaultAttribute, ' + @DefaultAttributeColumnExpression + ' as AttributeValue, ''' + cast(@DimensionGUID as nvarchar(max)) + ''', ''' + @DimensionName + ''' as DimensionName, ''' + @TableExpression + ''' as DimensionTable from ' + @TableExpression + @wc
insert into @out
(MemberGUID, DefaultAttribute, AttributeValue,DimensionGUID, DimensionName, DimensionTable)
exec sp_executesql @sql
fetch next from dimtables into @DimensionGUID, @DimensionName, @TableExpression, @DefaultAttributeFriendlyName, @DefaultAttributeColumnExpression
end
close dimtables
deallocate dimtables
select * from @out
GO
---------------------------------------------
-- dbo.procGetSecuredMemberCount
CREATE PROCEDURE [dbo].[procGetSecuredMemberCount]
@LootGroupPrefix nvarchar(100) = ''
AS
IF (@LootGroupPrefix = '')
BEGIN
SELECT
COUNT(*)
FROM
S3Loot
WHERE
LootID NOT LIKE '%|%'
END
ELSE
BEGIN
SELECT
COUNT(*)
FROM
S3Loot
WHERE
LootID LIKE @LootGroupPrefix + '|%'
END
GO
---------------------------------------------
-- dbo.procGetSecurityDeniedMembersList
CREATE PROCEDURE [dbo].[procGetSecurityDeniedMembersList]
-- Add the parameters for the stored procedure here
@ListGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@UserGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
select cast(slm.ListMemberGUID as varchar(36))
from SecureListMember slm
inner join SecureList sl on slm.ListGUID = sl.ListGUID and sl.IsSecured = 1 and sl.ListGUID = @ListGUID
left join viewS3ACL ACL on ACL.LootID = slm.LootIDOverride and ACL.UserGUID = @UserGUID
where ACL.IsReadable = 0 or ACL.IsReadable is null
END
GO
---------------------------------------------
-- dbo.procGetTableReferencesInfo
CREATE PROCEDURE [dbo].[procGetTableReferencesInfo]
@tableSchema NVARCHAR(max),
@tableName NVARCHAR(max)
AS
/*
**************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2022-09-14 BS JAZZ-42636 PR Metrics Definition: communication failure error when deleting many metrics with related pi.factmetric data
************************************************************
*/
SELECT DISTINCT U.COLUMN_NAME as ColumnName, R.COLUMN_NAME as RefColumnName, R.TABLE_SCHEMA as RefSchema, R.TABLE_NAME as RefName
FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE U
INNER JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS FK on
U.CONSTRAINT_CATALOG = FK.UNIQUE_CONSTRAINT_CATALOG AND
U.CONSTRAINT_SCHEMA = FK.UNIQUE_CONSTRAINT_SCHEMA AND
U.CONSTRAINT_NAME = FK.UNIQUE_CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE R ON
R.CONSTRAINT_CATALOG = FK.CONSTRAINT_CATALOG AND
R.CONSTRAINT_SCHEMA = FK.CONSTRAINT_SCHEMA AND
R.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON
CU.CONSTRAINT_CATALOG = U.CONSTRAINT_CATALOG AND
CU.CONSTRAINT_SCHEMA = U.CONSTRAINT_SCHEMA AND
CU.CONSTRAINT_NAME = U.CONSTRAINT_NAME AND
CU.COLUMN_NAME = U.COLUMN_NAME AND
CU.TABLE_CATALOG = U.TABLE_CATALOG AND
CU.TABLE_SCHEMA = U.TABLE_SCHEMA AND
CU.TABLE_NAME = U.TABLE_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE RC ON
RC.CONSTRAINT_CATALOG = R.CONSTRAINT_CATALOG AND
RC.CONSTRAINT_SCHEMA = R.CONSTRAINT_SCHEMA AND
RC.CONSTRAINT_NAME = R.CONSTRAINT_NAME AND
RC.COLUMN_NAME = R.COLUMN_NAME AND
RC.TABLE_CATALOG = R.TABLE_CATALOG AND
RC.TABLE_SCHEMA = R.TABLE_SCHEMA AND
RC.TABLE_NAME = R.TABLE_NAME AND
RC.ORDINAL_POSITION = CU.ORDINAL_POSITION
WHERE U.TABLE_SCHEMA = @tableSchema AND U.TABLE_NAME = @tableName
GO
---------------------------------------------
-- dbo.procGetTagCloud
CREATE procedure [dbo].[procGetTagCloud] (
@MaxFontSize int,
@TagTable sysname,
@TagSchema sysname = 'dbo'
)
AS
BEGIN
declare @sql varchar(max);
set @sql = '
declare @MaxFontSize int;
set @MaxFontSize = ' + cast(@MaxFontSize as nvarchar(max)) + '
declare @Min int;
declare @Max int;
WITH Tags (Tag, [Count])
AS
(
select
T.Name as Tag,
COUNT(T.TagGUID) as [Count]
from [' + @TagSchema + '].[' + @TagTable + '] TI
inner join Tag T on T.TagGUID = TI.TagGUID
GROUP BY T.Name
)
SELECT @Min = MIN([Count]), @Max = MAX([Count]) from Tags
select
T.TagGUID,
T.Name AS [Tag],
COUNT(TI.TagGUID) as [Count],
case when COUNT(TI.TagGUID) > @Min then (@MaxFontSize * (COUNT(TI.TagGUID) - @Min)) / (@Max - @Min) else 1 end as [FontSize]
from [' + @TagSchema + '].[' + @TagTable + '] TI
inner join Tag T on T.TagGUID = TI.TagGUID
group by T.Name, T.TagGUID
';
print @sql;
exec (@sql);
END
GO
---------------------------------------------
-- dbo.procGetUniqueColumnValueForCopy
CREATE PROCEDURE [dbo].[procGetUniqueColumnValueForCopy]
(
@schema nvarchar(128),
@objectname nvarchar(128),
@column nvarchar(128),
@desiredvalue varchar(max)
)
AS
BEGIN
declare @retval varchar(max);
declare @sql nvarchar(max);
SET @sql = N'
declare @index int;
set @index = 0;
set @testvalueOUT = @desiredvalue;
WHILE (1=1)
BEGIN
IF ((SELECT COUNT([' + @column + ']) FROM [' + @schema + '].[' + @objectname + '] WHERE [' + @column + '] = @testvalueOUT) > 0)
BEGIN
IF (@index = 0)
BEGIN
set @testvalueOUT = @desiredvalue + '' - Copy'';
END
ELSE
BEGIN
set @testvalueOUT = @desiredvalue + '' ('' + cast(@index as nvarchar(128)) + '') - Copy'';
END
set @index = @index + 1;
END
ELSE
BEGIN
break;
END
END'
exec sp_executesql
@sql,
N'@desiredvalue nvarchar(500),
@testvalueOUT nvarchar(500) OUTPUT
',
@desiredvalue=@desiredvalue,
@testvalueOUT=@retval OUTPUT;
select @retval;
END
GO
---------------------------------------------
-- dbo.procGetUnreadMessageCount
CREATE PROCEDURE [dbo].[procGetUnreadMessageCount]
@UserGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
AS
select
count(*)
from
MsgTopic (readuncommitted) T
inner join MsgMessage (readuncommitted) M on T.TopicGUID = M.TopicGUID
inner join viewS3ACLSimple (readuncommitted) ACL on ACL.LootID = T.TopicGUID and ACl.IsReadable = 1 and acl.UserGUID = @UserGUID
where
not exists(select 1 from MsgTopicArchive (readuncommitted) ta where ta.UserGUID = @UserGUID and ta.TopicGUID = t.TopicGUID)
and not exists(select 1 from MsgMessageRead (readuncommitted) mr where mr.MessageGUID = m.MessageGUID and mr.UserGUID = @UserGUID and mr.IsRead = 1)
GO
---------------------------------------------
-- dbo.procGetUserSecurityLastModifiedDate
-- =============================================
-- Author:
-- Create date: <6/24/2008>
-- Description:
-- =============================================
CREATE PROCEDURE procGetUserSecurityLastModifiedDate
-- Add the parameters for the stored procedure here
@UserGUID uniqueidentifier
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT LastModifiedDate
FROM UserSecurityLastModifiedDate
WHERE UserGUID = @UserGUID
END
GO
---------------------------------------------
-- dbo.procGetViewBaseTables
CREATE procedure [dbo].[procGetViewBaseTables] (
@ViewSchema sysname,
@ViewName sysname
)
AS
BEGIN
select
ViewSchema
,ViewName
,TableSchema
,TableName
,case when TableType = 'VIEW' then 1 else 0 end as [IsView]
,[Level]
from viewSysViewBaseTables
where ViewName = @ViewName and ViewSchema = @ViewSchema
Order by [Level]
END
GO
---------------------------------------------
-- dbo.procIRCCheckin
CREATE procedure [dbo].[procIRCCheckin] (
@UserGUID uniqueidentifier,
@IRCChatGUID uniqueidentifier,
@LastMessageID bigint = -1
)
AS
BEGIN
BEGIN TRANSACTION
--Determine last Checkin Time and Checkin
declare @LastCheckin datetime;
declare @Timestamp datetime;
declare @SQLTableName nvarchar(128)
set @Timestamp = GETDATE();
select @LastCheckin = [LastCheckinTime] from dbo.IRCChatMembership WITH (READUNCOMMITTED)
where UserGUID = @UserGUID and IRCChatGUID = @IRCChatGUID;
if (@LastCheckin is null)
begin
insert into dbo.IRCChatMembership (UserGUID, IRCChatGUID, LastCheckinTime) values (@UserGUID, @IRCChatGUID, @Timestamp);
end
else
begin
update dbo.IRCChatMembership set LastCheckinTime = @Timestamp where UserGUID = @UserGUID and IRCChatGUID = @IRCChatGUID;
end
--Clean up old users (haven't checked in for 15 seconds)
delete from dbo.IRCChatMembership where LastCheckinTime < DATEADD(SECOND,-15,GETDATE())
--Find database table
select @SQLTableName = SQLTableName from dbo.IRCChat WITH (READUNCOMMITTED )
where IRCChatGUID = @IRCChatGUID;
--Begin Dataset Selects - read as dataset by code
--Chat Membership
select UP.UserGUID, UP.NameFirst + ' ' + UP.NameLast as [NameFull], UP.UserName, ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS bit),0) AS IsSysAdmin from dbo.IRCChatMembership CM WITH (READUNCOMMITTED)
inner join UserProfile UP on UP.UserGUID = CM.UserGUID
left join [dbo].[S3IdentityLink] IL on UP.UserGUID = IL.MemberGUID and IL.GroupingGUID = (select UserGroupGUID from [dbo].[UserGroup] where GlobalID = 'GEN - User Administrator')
where CM.IRCChatGUID = @IRCChatGUID
--Last MessageID
declare @lSQL varchar(max);
set @lSQL = 'select COALESCE(MAX(MessageID),0) as [LastMessageID] from [irc].[' + @SQLTableName + ']';
exec (@lSQL);
--New Messages
declare @sql varchar(max);
if (@LastMessageID = -1)
begin
set @sql = '
select * from [irc].[' + @SQLTableName + '] where 1=0
';
-- set @sql = '
-- select
-- C.[MessageID],
-- UP.[UserName],
-- UP.[UserGUID],
-- UP.[NameFirst] + '' '' + UP.NameLast as [FullName],
-- C.[Timestamp] as [Timestamp],
-- C.[MessageText]
-- from [irc].[' + @SQLTableName + '] C WITH (READUNCOMMITTED)
-- inner join dbo.UserProfile UP on UP.UserGUID = C.UserGUID
-- where C.[MessageID] > (select MAX(MessageID) - 50 from [irc].[' + @SQLTableName + '])
-- order by C.[MessageID]
-- ';
end
else
begin
set @sql = '
select
C.[MessageID],
UP.[UserName],
UP.[UserGUID],
UP.[NameFirst] + '' '' + UP.NameLast as [FullName],
C.[Timestamp] as [Timestamp],
C.[MessageText]
from [irc].[' + @SQLTableName + '] C WITH (READUNCOMMITTED)
inner join dbo.UserProfile UP on UP.UserGUID = C.UserGUID
where C.[MessageID] > ' + cast(@LastMessageID as nvarchar(128)) + '
order by C.[MessageID]
';
end
exec (@sql);
COMMIT TRANSACTION
END
GO
---------------------------------------------
-- dbo.procIRCClearOrphanedUsers
CREATE PROCEDURE dbo.procIRCClearOrphanedUsers
AS
BEGIN
--Clean up old users (haven't checked in for 15 seconds)
delete from dbo.IRCChatMembership where LastCheckinTime < DATEADD(SECOND,-15,GETDATE())
END
GO
---------------------------------------------
-- dbo.procIRCCreateChatTable
CREATE procedure [dbo].[procIRCCreateChatTable] (
@IRCChatGUID uniqueidentifier
)
AS
BEGIN
BEGIN TRANSACTION
declare @SQLTableName nvarchar(128);
--Find database table
select @SQLTableName = SQLTableName from dbo.IRCChat WITH (READUNCOMMITTED )
where IRCChatGUID = @IRCChatGUID;
declare @sql varchar(max);
set @sql = 'CREATE TABLE [irc].[' + @SQLTableName + '] (
[MessageID] bigint not null primary key identity(1,1),
[Timestamp] datetime not null default getdate(),
[UserGUID] uniqueidentifier not null default dbo.ZeroGUID(),
[MessageText] nvarchar(max) not null default '''');
'
print @sql;
exec (@sql);
COMMIT TRANSACTION
END
GO
---------------------------------------------
-- dbo.procIRCDropChat
create procedure [dbo].[procIRCDropChat] (
@IRCChatGUID uniqueidentifier
)
AS
BEGIN TRANSACTION
declare @SQLTableName nvarchar(128);
--Find database table
select @SQLTableName = SQLTableName from dbo.IRCChat WITH (READUNCOMMITTED )
where IRCChatGUID = @IRCChatGUID;
declare @sql varchar(max);
set @sql = 'DROP TABLE [irc].[' + @SQLTableName + '];'
exec (@sql);
COMMIT TRANSACTION
GO
---------------------------------------------
-- dbo.procIRCIsUserInChat
CREATE PROCEDURE [dbo].[procIRCIsUserInChat] (
@IRCChatGUID uniqueidentifier,
@UserGUID uniqueidentifier
)
AS
BEGIN
exec procIRCClearOrphanedUsers;
declare @IsUserInChat bit;
set @IsUserInChat = 0;
declare @count int;
select @count = COUNT(M.IRCChatGUID) from dbo.IRCChatMembership M
where M.IRCChatGUID = @IRCChatGUID and M.UserGUID = @UserGUID;
if (@count > 0)
set @IsUserInChat = 1;
select @IsUserInChat;
END
GO
---------------------------------------------
-- dbo.procIRCLeaveChat
create procedure [dbo].[procIRCLeaveChat](
@UserGUID uniqueidentifier,
@IRCChatGUID uniqueidentifier
)
AS
BEGIN
delete from dbo.IRCChatMembership where UserGUID = @UserGUID and IRCChatGUID = @IRCChatGUID
END
GO
---------------------------------------------
-- dbo.procIRCSendMessage
CREATE procedure [dbo].[procIRCSendMessage] (
@UserGUID uniqueidentifier,
@IRCChatGUID uniqueidentifier,
@MessageText nvarchar(max)
)
AS
BEGIN
BEGIN TRANSACTION
set @MessageText = REPLACE(@MessageText, '''', '''''')
declare @SQLTableName nvarchar(128);
--Find database table
select @SQLTableName = SQLTableName from dbo.IRCChat WITH (READUNCOMMITTED )
where IRCChatGUID = @IRCChatGUID;
declare @sql varchar(max);
set @sql = 'insert into [irc].[' + @SQLTableName + '] (MessageText, UserGUID) VALUES (''' + @MessageText + ''',''' + cast(@UserGUID as nvarchar(64)) + ''')'
exec (@sql);
COMMIT TRANSACTION
END
GO
---------------------------------------------
-- dbo.procInitStandardReportSelector
CREATE PROCEDURE [dbo].[procInitStandardReportSelector]
AS
BEGIN
DECLARE @isExistRELootTypeTable bit;
DECLARE @isExistRESelectorTable bit;
set @isExistRELootTypeTable =
(SELECT COUNT(NAME)
FROM SYS.TABLES
WHERE NAME = 'RELootType');
set @isExistRESelectorTable =
(SELECT COUNT(NAME)
FROM SYS.TABLES
WHERE NAME = 'RESelector');
print @isExistRELootTypeTable
print @isExistRESelectorTable
IF @isExistRELootTypeTable = 0
BEGIN
CREATE TABLE [dbo].[RELootType](
[ID] [uniqueidentifier] NOT NULL CONSTRAINT [DF_RELootType_ID] DEFAULT (newid()),
[LootType] [int] NOT NULL CONSTRAINT [DF_RELootType_LootType] DEFAULT ((0)),
[LootTypeName] [nvarchar](64) NOT NULL CONSTRAINT [DF_RELootType_LootTypeName] DEFAULT (''),
[VERSION] [timestamp] NOT NULL,
CONSTRAINT [PK_RELootType] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
INSERT INTO RELootType
(ID, LootType, LootTypeName)
VALUES
(
'FC558834-7EA7-4A8C-94B7-111CAAAAE400',
0,
'Plan'
);
INSERT INTO RELootType
(ID, LootType, LootTypeName)
VALUES
(
'891A6E54-5BC8-4088-85C8-323BCAA7C60E',
3,
'Report'
);
INSERT INTO RELootType
(ID, LootType, LootTypeName)
VALUES
(
'd7927372-c3ad-4e3b-892d-d91de9fad1dc',
2,
'List'
);
INSERT INTO RELootType
(ID, LootType, LootTypeName)
VALUES
(
'108a6a2a-0bf9-4d02-8e1d-cbe627eb12b5',
4,
'PlanType'
);
INSERT INTO RELootType
(ID, LootType, LootTypeName)
VALUES
(
'85f7fe66-d6c9-4c9d-8136-c41f1f1eef8b',
8,
'FormField'
);
INSERT INTO RELootType
(ID, LootType, LootTypeName)
VALUES
(
'45093B3D-35E3-48A2-B25E-756F4A1BC4CF',
7,
'System Section'
);
INSERT INTO RELootType
(ID, LootType, LootTypeName)
VALUES
(
'6691EFEC-D8D9-4C99-ACF7-ACFCE80C9134',
99,
'All'
);
INSERT INTO RELootType
(ID, LootType, LootTypeName)
VALUES
(
'29250C25-DBE4-4E7A-BFC9-E0CC32B501CC',
2,
'List Member'
);
INSERT INTO RELootType
(ID, LootType, LootTypeName)
VALUES
(
'76BDE210-F4CD-4136-BC26-E50F9B6A56DA',
1,
'Folder'
);
IF @isExistRESelectorTable = 0
BEGIN
CREATE TABLE [dbo].[RESelector](
[ID] [uniqueidentifier] NOT NULL CONSTRAINT [DF_REBooleanSelector_ID] DEFAULT (newid()),
[Name] [nvarchar](64) NOT NULL,
[Value] [int] NOT NULL,
[Type] [nvarchar](64) NOT NULL,
[VERSION] [timestamp] NOT NULL
) ON [PRIMARY]
END
INSERT INTO RESelector
(ID, Name, Value, Type)
VALUES
(
'72FFB9CB-BB88-4EF5-BD4F-B76D311CC2D9',
'Yes',
1,
'Boolean'
);
INSERT INTO RESelector
(ID, Name, Value, Type)
VALUES
(
'A2D76819-7832-4078-AE5D-541A274195DB',
'No',
0,
'Boolean'
);
END
GO
---------------------------------------------
-- dbo.procInsertStandardCodeTask
CREATE PROC dbo.procInsertStandardCodeTask
AS
DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.StandardCodes.StandardCodesSyncTask, Strata.CS.Jazz.Biz', -- varchar(1000)
@contextXML = '', -- varchar(1000)
@userName = 'Migration',
@statusCode = @statusCode OUTPUT;
GO
---------------------------------------------
-- dbo.procIntDeleteInterfaceSectionTables
create procedure [dbo].[procIntDeleteInterfaceSectionTables] (
@InterfaceSectionId uniqueidentifier,
@IntSchema nvarchar(128) = 'int'
)
AS
BEGIN
declare @SectionName varchar(max);
select @SectionName = Name from dbo.IntDataInterfaceSection where DataInterfaceSectionID = @InterfaceSectionId
declare @AcceptedTable sysname;
declare @RejectedTable sysname;
declare @AcceptedView sysname;
declare @RejectedView sysname;
select @AcceptedTable = dbo.GetDataIntSectionAcceptedTableName(@InterfaceSectionId);
select @RejectedTable = dbo.GetDataIntSectionRejectedTableName(@InterfaceSectionId);
select @AcceptedView = dbo.GetDataIntSectionAcceptedViewName(@SectionName,@InterfaceSectionId);
select @RejectedView = dbo.GetDataIntSectionRejectedViewName(@SectionName,@InterfaceSectionId);
if (dbo.TableExists(@IntSchema, @AcceptedTable) = 1) begin
exec procSysDropTable @IntSchema, @AcceptedTable;
end
if (dbo.TableExists(@IntSchema, @RejectedTable) = 1) begin
exec procSysDropTable @IntSchema, @RejectedTable;
end
if (dbo.ViewExists(@IntSchema, @AcceptedView) = 1) begin
exec procSysDropTable @IntSchema, @AcceptedView;
end
if (dbo.ViewExists(@IntSchema, @RejectedView) = 1) begin
exec procSysDropTable @IntSchema, @RejectedView;
end
END
GO
---------------------------------------------
-- dbo.procIntTransactionCreate
CREATE procedure dbo.procIntTransactionCreate (
@TransactionGUID uniqueidentifier,
@ConfigGUID uniqueidentifier,
@UserID uniqueidentifier,
@Comment nvarchar(800)
)
as
begin
insert into [dbo].[IntTransaction]
(TransactionGUID, ConfigID, UserID, StartTimeUtc, EndTimeUtc, IsSuccess, HasCompleted, Comment, Files, IsManualEntry)
values (@TransactionGUID, @ConfigGUID, @UserID, getutcdate(), getutcdate(), 1, 1, @Comment, 'T-SQL', 1)
end
GO
---------------------------------------------
-- dbo.procInvalidateModelWorkbookCache
CREATE PROC procInvalidateModelWorkbookCache
@entityguid uniqueidentifier,
@istemplate bit,
@isdebugonly bit = 0,
@source nvarchar(100) = 'Unknown'
AS
declare @whereClause nvarchar(max)
IF @istemplate = 1 BEGIN
--clear models for this template, if caching enabled
if ((select count(*) from [dbo].[EMFModelTemplate] (readuncommitted) where ModelTemplateGUID = @entityguid and IsModelWorkbookCachable = 1) > 0) begin
if ((select count(*) from [dbo].[XPlan] (readuncommitted) where ModelTemplateGUID = @entityguid and IsModelWorkbookCached = 1) > 0) begin
--clear file cache
update XPlan Set IsModelWorkbookCached = 0, LastModelCacheInvalidateReason = @source, LastModelCacheInvalidateDate = getdate() WHERE ModelTemplateGUID = @entityguid and IsModelWorkbookCached = 1
--clear memory cache
if ((select count(*) from [dbo].[EMFModelTemplate] (readuncommitted) where ModelTemplateGUID = @entityguid and IsMemoryCachable = 1) > 0) begin
set @whereClause = ' in(select xp1.PlanGUID from XPlan xp1 (readuncommitted) where xp1.ModelTemplateGUID = ''' + cast(@entityguid as nvarchar(36)) + ''')'
exec procTEEvictModelCache @whereClause
end
end
end
END ELSE BEGIN
--clear just this model, if caching enabled
if ((select count(*) from [dbo].[EMFModelTemplate] mt (readuncommitted) inner join [dbo].[XPlan] p (readuncommitted) on p.ModelTemplateGUID = mt.ModelTemplateGUID and p.PlanGUID = @entityguid where mt.IsModelWorkbookCachable = 1) > 0) begin
if ((select count(*) from [dbo].[XPlan] (readuncommitted) where IsModelWorkbookCached = 1 and (PlanGUID = @entityguid or PlanGUID in(select ModelGUID from [dbo].[viewModelDependencies] where ParentModelGUID = @entityguid))) > 0) begin
--clear file cache
update [dbo].[XPlan] set IsModelWorkbookCached = 0, LastModelCacheInvalidateReason = @source, LastModelCacheInvalidateDate = getdate() where IsModelWorkbookCached = 1 and (PlanGUID = @entityguid or PlanGUID in(select ModelGUID from [dbo].[viewModelDependencies] where ParentModelGUID = @entityguid))
--clear memory cache
if ((select count(*) from [dbo].[EMFModelTemplate] mt (readuncommitted) inner join [dbo].[XPlan] p (readuncommitted) on p.ModelTemplateGUID = mt.ModelTemplateGUID and p.PlanGUID = @entityguid where mt.IsMemoryCachable = 1) > 0) begin
set @whereClause = ' in(select xp1.PlanGUID from XPlan xp1 (readuncommitted) where xp1.PlanGUID = ''' + cast(@entityguid as nvarchar(36)) + ''' union all select dep2.ModelGUID from [dbo].[viewModelDependencies] dep2 where dep2.ParentModelGUID = ''' + cast(@entityguid as nvarchar(36)) + ''')'
exec procTEEvictModelCache @whereClause, @isdebugonly
end
end
end
END
GO
---------------------------------------------
-- dbo.procInvalidateModelWorkbookCacheByDimension
CREATE proc [dbo].[procInvalidateModelWorkbookCacheByDimension]
@dimensionGUID uniqueidentifier,
@whereClause nvarchar(max) = '',
@isDebug bit = 0,
@source nvarchar(100) = 'Unknown'
as
set nocount on
--cancel if this dimension is not a fillin dimension in modeling
if ((select count(*) from [dbo].[MEScorePlaceholderLabel] phl (readuncommitted) where phl.FillinDimensionGUID = @dimensionGUID) = 0) begin
return
end
declare @dimSource nvarchar(100)
declare @fullWhereClause nvarchar(max)
declare @mcSQL nvarchar(max)
select @dimSource = SQLSchemaName + '.' + SQLObjectName from [dbo].[ScoreDimension] (readuncommitted) where DimensionGUID = @dimensionGUID
if((select count(*) from [dbo].[EMFModelTemplate] (readuncommitted) where IsModelWorkbookCachable = 1) > 0) begin
set @fullWhereClause = ' in(
select
FI.ModelGUID
from
ScoreFillin FI (readuncommitted)
inner join ' + @dimSource + ' C (readuncommitted) on C.MemberGUID = FI.FillinMemberGUID '
if (@whereClause != '') begin
set @fullWhereClause = @fullWhereClause + ' where ' + @whereClause
end
set @fullWhereClause = @fullWhereClause + ')'
set @mcSQL = '
declare @cnt int
select @cnt = count(*) from XPlan P (readuncommitted) inner join EMFModelTemplate MT (readuncommitted) on MT.ModelTemplateGUID = P.ModelTemplateGUID where MT.IsModelWorkbookCachable = 1 and P.PlanGUID ' + @fullWhereClause + '
if(@cnt > 0) begin
--clear cache
update XPlan set IsModelWorkbookCached = 0, LastModelCacheInvalidateReason = ''' + @source + ''', LastModelCacheInvalidateDate = getdate() where IsModelWorkbookCached = 1 and PlanGUID ' + @fullWhereClause + '
select @cnt = count(*) from XPlan P (readuncommitted) inner join EMFModelTemplate MT (readuncommitted) on MT.ModelTemplateGUID = P.ModelTemplateGUID where MT.IsMemoryCachable = 1 and P.PlanGUID ' + @fullWhereClause + '
if(@cnt > 0) begin
exec procTEEvictModelCache ''' + replace(@fullWhereClause, '''', '''''') + '''
end
end'
if(@isDebug = 0) begin
exec(@mcSQL)
end else begin
print @mcSQL
end
end
GO
---------------------------------------------
-- dbo.procInvalidateModelWorkbookCacheByDimensionEMF
CREATE proc [dbo].[procInvalidateModelWorkbookCacheByDimensionEMF]
@dimensionGUID uniqueidentifier,
@whereClause nvarchar(max) = '',
@isDebug bit = 0,
@source nvarchar(100) = 'Unknown'
as
declare @mcSQL nvarchar(max)
declare @fullWhereClause nvarchar(max)
if((select count(*) from [dbo].[EMFModelTemplate] where IsModelWorkbookCachable = 1) > 0) begin
set @fullWhereClause = ' in(
select
FI.ModelGUID
from
EMFFillin FI (readuncommitted)
inner join SecureListMember C (readuncommitted) on C.ListGUID = ''' + cast(@dimensionGUID as nvarchar(36)) + ''' and C.ListMemberGUID = FI.FilledInMemberGUID '
if (@whereClause != '') begin
set @fullWhereClause = @fullWhereClause + ' where ' + @whereClause
end
set @fullWhereClause = @fullWhereClause + ')'
set @mcSQL = 'update XPlan set IsModelWorkbookCached = 0, LastModelCacheInvalidateReason = ''' + @source + ''', LastModelCacheInvalidateDate = getdate() where IsModelWorkbookCached = 1 and PlanGUID ' + @fullWhereClause
if(@isDebug = 0) begin
exec(@mcSQL)
end else begin
print @mcSQL
end
--exec procTEEvictModelCache @fullWhereClause, @isDebug
end
GO
---------------------------------------------
-- dbo.procInvalidateModelWorkbookCacheByPlanType
CREATE PROC procInvalidateModelWorkbookCacheByPlanType
@planTypeGUID uniqueidentifier,
@source nvarchar(100) = 'Unknown'
AS
--see if this plan type has templates with caching enabled
if ((select count(*) from [dbo].[EMFModelTemplate] mt (readuncommitted) inner join [dbo].[PlanTypeModelTemplateLink] ptl (readuncommitted) on ptl.ModelTemplateGUID = mt.ModelTemplateGUID where ptl.PlanTypeGUID = @planTypeGUID and mt.IsModelWorkbookCachable = 1) > 0) begin
if ((select count(*) from [dbo].[XPlan] (readuncommitted) where PlanTypeGUID = @planTypeGUID and IsModelWorkbookCached = 1) > 0) begin
--clear file cache
update [dbo].[XPlan] set IsModelWorkbookCached = 0, LastModelCacheInvalidateReason = @source, LastModelCacheInvalidateDate = getdate() where PlanTypeGUID = @planTypeGUID and IsModelWorkbookCached = 1
--clear memory cache
if ((select count(*) from [dbo].[EMFModelTemplate] mt (readuncommitted) inner join [dbo].[PlanTypeModelTemplateLink] ptl (readuncommitted) on ptl.ModelTemplateGUID = mt.ModelTemplateGUID where ptl.PlanTypeGUID = @planTypeGUID and mt.IsMemoryCachable = 1) > 0) begin
declare @whereClause nvarchar(max)
set @whereClause = ' in(select x1.PlanGUID from XPlan x1 (readuncommitted) where x1.PlanTypeGUID = ''' + cast(@planTypeGUID as nvarchar(36)) + ''')'
exec procTEEvictModelCache @whereClause
end
end
end
GO
---------------------------------------------
-- dbo.procInvalidateModelWorkbookCacheByTemplate
CREATE PROC dbo.procInvalidateModelWorkbookCacheByTemplate
@modelTemplateGUID uniqueidentifier,
@source nvarchar(100) = 'Unknown',
@idlePlansOnly bit = 0
AS
--see if this plan type has templates with caching enabled
if ((select count(*) from [dbo].[EMFModelTemplate] mt (readuncommitted) where mt.ModelTemplateGUID = @modelTemplateGUID and mt.IsModelWorkbookCachable = 1) > 0) begin
if ((select count(*) from [dbo].[XPlan] (readuncommitted) where ModelTemplateGUID = @modelTemplateGUID and IsModelWorkbookCached = 1) > 0) begin
if (@idlePlansOnly = 0) begin
--clear file cache
update [dbo].[XPlan] set IsModelWorkbookCached = 0, LastModelCacheInvalidateReason = @source, LastModelCacheInvalidateDate = getdate() where ModelTemplateGUID = @modelTemplateGUID and IsModelWorkbookCached = 1
--clear memory cache
if ((select count(*) from [dbo].[EMFModelTemplate] mt (readuncommitted) where mt.ModelTemplateGUID = @modelTemplateGUID and mt.IsMemoryCachable = 1) > 0) begin
declare @whereClause nvarchar(max)
set @whereClause = ' in(select x1.PlanGUID from XPlan x1 (readuncommitted) where x1.ModelTemplateGUID = ''' + cast(@modelTemplateGUID as nvarchar(36)) + ''')'
exec procTEEvictModelCache @whereClause
end
end else begin
--clear file cache for plans not in memory or refresh queue (this option is used to resolve a specific error where plans have invalid file cache)
update p set p.IsModelWorkbookCached = 0, p.LastModelCacheInvalidateReason = @source, p.LastModelCacheInvalidateDate = getdate()
from
XPlan p
inner join emfmodeltemplate t on p.modeltemplateguid = t.modeltemplateguid
where
t.modeltemplateguid = @modelTemplateGUID
and t.ismodelworkbookcachable = 1
and t.ismemorycachable = 1
and p.ismodelworkbookcached = 1
and not exists(select 1 from modelcachelookup lu where lu.ModelGuid = p.PlanGUID)
and not exists(select 1 from MEModelRefreshQueue q where q.modelguid = p.planguid)
end
end
end
GO
---------------------------------------------
-- dbo.procInvalidateModelWorkbookCacheByWhereClause
CREATE PROC procInvalidateModelWorkbookCacheByWhereClause
@xplanWhereClause nvarchar(max),
@isDebugOnly bit = 0,
@source nvarchar(100) = 'Unknown'
AS
declare @sql nvarchar(max)
declare @where nvarchar(max)
if (@xplanWhereClause != '') begin
set @where = @xplanWhereClause
end else begin
set @where = '(1 = 1)'
end
declare @evictWhereClause nvarchar(max)
set @evictWhereClause = ' in(select x1.PlanGUID from XPlan x1 (readuncommitted) inner join EMFModelTemplate mt1 (readuncommitted) on mt1.ModelTemplateGUID = x1.ModelTemplateGUID where mt1.IsModelWorkbookCachable = 1'
if (@where != '(1 = 1)') begin
set @evictWhereClause = @evictWhereClause + ' and x1.' + ltrim(@where)
end
set @evictWhereClause = @evictWhereClause + ')'
if ((select count(*) from [dbo].[EMFModelTemplate] (readuncommitted) where IsModelWorkbookCachable = 1) > 0) begin
set @sql = '
if((select count(*) from XPlan p (readuncommitted) inner join EMFModelTemplate mt (readuncommitted) on p.ModelTemplateGUID = mt.ModelTemplateGUID where p.IsModelWorkbookCached = 1 and mt.IsModelWorkbookCachable = 1 and mt.IsMemoryCachable = 0 and ' + @where + ') > 0) begin
--clear file cache only
update [dbo].[XPlan] set IsModelWorkbookCached = 0, LastModelCacheInvalidateReason = ''' + @source + ''', LastModelCacheInvalidateDate = getdate() where IsModelWorkbookCached = 1 and ' + @where + '
end
if((select count(*) from XPlan p (readuncommitted) inner join EMFModelTemplate mt (readuncommitted) on p.ModelTemplateGUID = mt.ModelTemplateGUID where p.IsModelWorkbookCached = 1 and mt.IsModelWorkbookCachable = 1 and mt.IsMemoryCachable = 1 and ' + @where + ') > 0) begin
--clear file cache
update [dbo].[XPlan] set IsModelWorkbookCached = 0, LastModelCacheInvalidateReason = ''' + @source + ''', LastModelCacheInvalidateDate = getdate() where IsModelWorkbookCached = 1 and ' + @where + '
--clear memory cache
exec procTEEvictModelCache ''' + replace(@evictWhereClause, '''', '''''') + '''
end
'
if (@isDebugOnly = 0) begin
exec(@sql)
end else begin
print @sql
end
end
GO
---------------------------------------------
-- dbo.procIsModelDriverExceptionsTest
create proc [dbo].[procIsModelDriverExceptionsTest]
with recompile
as
exec dbo.procSysDropTempTable '##modelattrs'
select *
into ##modelattrs
from viewScoreAttribute
where
(DimensionName = 'Account' and FriendlyName = 'Name')
or
(DimensionName = 'Account' and FriendlyName = 'OB Dollars Rollup Name')
or
(DimensionName = 'Account' and FriendlyName = 'OB Variability')
or
(DimensionName = 'Account' and FriendlyName = 'OB Staffing')
or
(DimensionName = 'Job Code' and FriendlyName = 'Name')
or
(DimensionName = 'Job Code' and FriendlyName = 'Variability')
or
(DimensionName = 'Pay Code Group' and FriendlyName = 'Name')
or
(DimensionName = 'Fiscal Year' and FriendlyName = 'Name')
or
(DimensionName = 'Charge Code' and FriendlyName = 'Name')
or
(DimensionName = 'Charge Code' and FriendlyName = 'Category')
or
(DimensionName = 'Charge Code' and FriendlyName = 'IsStatDriver')
or
(DimensionName = 'Charge Code' and FriendlyName = 'RVU Weight')
or
(DimensionName = 'Charge Code' and FriendlyName = 'Charge Increase')
or
(DimensionName = 'Employee' and FriendlyName = 'Name')
or
(DimensionName = 'Employee' and FriendlyName = 'Job Code')
or
(DimensionName = 'Employee' and FriendlyName = 'Next Review')
or
(DimensionName = 'Employee' and FriendlyName = 'Wage Rate')
or
(DimensionName = 'Account' and FriendlyName = 'OB Dollars Financial Reporting Name')
or
(DimensionName = 'Account' and FriendlyName = 'OB Dollars Financial Reporting Line Name')
or
(DimensionName = 'Account' and FriendlyName = 'OB Units Financial Reporting Name')
or
(DimensionName = 'Account' and FriendlyName = 'OB Units Financial Reporting Line Name')
or
(DimensionName = 'OB Financial Reporting' and FriendlyName = 'Name')
or
(DimensionName = 'OB Financial Reporting' and FriendlyName = 'Line Name')
or
(DimensionName = 'Account' and FriendlyName = 'Patient Type Rollup Name')
or
(DimensionName = 'Account' and FriendlyName = 'Patient Class')
or
(DimensionName = 'Pay Code Group' and FriendlyName = 'Wage Rate Multiplier')
or
(DimensionName = 'Provider' and FriendlyName = 'Base Pay')
or
(DimensionName = 'Provider' and FriendlyName = 'Name')
or
(DimensionName = 'Provider' and FriendlyName = 'Specialty')
or
(DimensionName = 'Provider' and FriendlyName = 'IsEmployee')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Name')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 1 Threshold')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 2 Threshold')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 3 Threshold')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 4 Threshold')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 5 Threshold')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 6 Threshold')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 1 Rate')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 2 Rate')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 3 Rate')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 4 Rate')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 5 Rate')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Tier 6 Rate')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Volume Target 1')
or
(DimensionName = 'Provider' and FriendlyName = 'OB Volume Target 2')
or
(DimensionName = 'OB Financial Reporting' and FriendlyName = 'Section')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Account')
or
(DimensionName = 'OB Financial Reporting' and FriendlyName = 'Is Expense')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Secondary Account')
or
(DimensionName = 'Provider' and FriendlyName = 'IsPhysician')
or
(DimensionName = 'Account' and FriendlyName = 'Name')
or
(DimensionName = 'OB Departmental Budget' and FriendlyName = 'Is Variable')
or
(DimensionName = 'Pay Code Group' and FriendlyName = 'IsExcludedfromBenefits')
or
(DimensionName = 'OB Financial Reporting' and FriendlyName = 'Projection Method')
or
(DimensionName = 'OB Financial Reporting' and FriendlyName = 'Spread Method')
or
(DimensionName = 'Account' and FriendlyName = 'OB Is Expense')
or
(DimensionName = 'Account' and FriendlyName = 'Inversion')
or
(DimensionName = 'Account' and FriendlyName = 'AccountID')
or
(DimensionName = 'OB Departmental Budget' and FriendlyName = 'DepartmentalBudgetID')
or
(DimensionName = 'Work Week' and FriendlyName = 'Name')
or
(DimensionName = 'Work Week' and FriendlyName = 'WorkWeekID')
or
(DimensionName = 'Provider' and FriendlyName = 'WorkWeekOverrideID')
or
(DimensionName = 'Job Code' and FriendlyName = 'WorkWeekOverrideID')
or
(DimensionName = 'Employee' and FriendlyName = 'WorkWeekOverrideID')
or
(DimensionName = 'OB Departmental Budget' and FriendlyName = 'Entity Default Work WeekID')
or
(DimensionName = 'Provider' and FriendlyName = 'NPI')
or
(DimensionName = 'OB Departmental Budget' and FriendlyName = 'Hours per UOS Projection')
or
(DimensionName = 'OB Departmental Budget' and FriendlyName = 'Hours per UOS Budget')
or
(DimensionName = 'Employee' and FriendlyName = 'Employee Cohort Contract Date')
or
(DimensionName = 'Employee' and FriendlyName = 'Employee Cohort Merit Type')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Volume Target')
or
(DimensionName = 'Fiscal Year' and FriendlyName = 'Name')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'Account')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'Department Code')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'Name')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'LOSLink')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'OB Units Financial Reporting Name')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'OB Units Financial Reporting Line Name')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'Patient Class')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'OB Payor Group')
or
(DimensionName = 'Account' and FriendlyName = 'Name')
or
(DimensionName = 'Fiscal Year' and FriendlyName = 'Name')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'Name')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'OB Units Financial Reporting Name')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'OB Units Financial Reporting Line Name')
or
(DimensionName = 'Account' and FriendlyName = 'Name')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'Account')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'Department Code')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'LOSLink')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'Patient Class')
or
(DimensionName = 'OB Global Statistics' and FriendlyName = 'OB Payor Group')
or
(DimensionName = 'Account' and FriendlyName = 'Name')
or
(DimensionName = 'Account' and FriendlyName = 'Patient Class')
or
(DimensionName = 'Account' and FriendlyName = 'OB Payor Group')
or
(DimensionName = 'Account' and FriendlyName = 'OB Dollars Rollup Name')
or
(DimensionName = 'Account' and FriendlyName = 'OB Staffing')
or
(DimensionName = 'Account' and FriendlyName = 'Variability')
or
(DimensionName = 'Charge Code' and FriendlyName = 'Name')
or
(DimensionName = 'Charge Code' and FriendlyName = 'Category')
or
(DimensionName = 'Charge Code' and FriendlyName = 'Charge Increase')
or
(DimensionName = 'Charge Code' and FriendlyName = 'IsStatDriver')
or
(DimensionName = 'Charge Code' and FriendlyName = 'RVU Weight')
or
(DimensionName = 'Employee' and FriendlyName = 'Name')
or
(DimensionName = 'Employee' and FriendlyName = 'Next Review')
or
(DimensionName = 'Employee' and FriendlyName = 'Job Code')
or
(DimensionName = 'Employee' and FriendlyName = 'Wage Rate')
or
(DimensionName = 'Fiscal Year' and FriendlyName = 'Name')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Name')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Name')
or
(DimensionName = 'Job Code' and FriendlyName = 'Name')
or
(DimensionName = 'Job Code' and FriendlyName = 'Variability')
or
(DimensionName = 'Payor Group' and FriendlyName = 'Name')
or
(DimensionName = 'OB Provider' and FriendlyName = 'Name')
or
(DimensionName = 'OB Provider' and FriendlyName = 'RVU Budget Target')
or
(DimensionName = 'OB Provider' and FriendlyName = 'Provider Code')
or
(DimensionName = 'OB Provider' and FriendlyName = 'RVU Conversion Factor')
or
(DimensionName = 'OB Provider' and FriendlyName = 'RVU Current Target')
or
(DimensionName = 'OB Provider' and FriendlyName = 'isEmployee')
or
(DimensionName = 'OB Provider' and FriendlyName = 'Annual RVU Median')
or
(DimensionName = 'OB Provider' and FriendlyName = 'Provider Speciality')
or
(DimensionName = 'Account' and FriendlyName = 'Name')
or
(DimensionName = 'Account' and FriendlyName = 'OB Dollars Rollup Name')
or
(DimensionName = 'Charge Code' and FriendlyName = 'Name')
or
(DimensionName = 'Employee' and FriendlyName = 'Name')
or
(DimensionName = 'Fiscal Year' and FriendlyName = 'Name')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Name')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Name')
or
(DimensionName = 'Job Code' and FriendlyName = 'Name')
or
(DimensionName = 'Payor Group' and FriendlyName = 'Name')
or
(DimensionName = 'OB Provider' and FriendlyName = 'Name')
or
(DimensionName = 'Account' and FriendlyName = 'Patient Class')
or
(DimensionName = 'Account' and FriendlyName = 'OB Payor Group')
or
(DimensionName = 'Account' and FriendlyName = 'OB Staffing')
or
(DimensionName = 'Account' and FriendlyName = 'Variability')
or
(DimensionName = 'Charge Code' and FriendlyName = 'Category')
or
(DimensionName = 'Charge Code' and FriendlyName = 'Charge Increase')
or
(DimensionName = 'Charge Code' and FriendlyName = 'IsStatDriver')
or
(DimensionName = 'Charge Code' and FriendlyName = 'RVU Weight')
or
(DimensionName = 'Employee' and FriendlyName = 'Next Review')
or
(DimensionName = 'Employee' and FriendlyName = 'Job Code')
or
(DimensionName = 'Employee' and FriendlyName = 'Wage Rate')
or
(DimensionName = 'Job Code' and FriendlyName = 'Variability')
or
(DimensionName = 'OB Provider' and FriendlyName = 'RVU Budget Target')
or
(DimensionName = 'OB Provider' and FriendlyName = 'Provider Code')
or
(DimensionName = 'OB Provider' and FriendlyName = 'RVU Conversion Factor')
or
(DimensionName = 'OB Provider' and FriendlyName = 'RVU Current Target')
or
(DimensionName = 'OB Provider' and FriendlyName = 'isEmployee')
or
(DimensionName = 'OB Provider' and FriendlyName = 'Annual RVU Median')
or
(DimensionName = 'OB Provider' and FriendlyName = 'Provider Speciality')
or
(DimensionName = 'Fiscal Year' and FriendlyName = 'Name')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Name')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Age Cohort')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Medical Surgical')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Service Line')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Service Line Rollup')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Name')
or
(DimensionName = 'Service Line Rollup' and FriendlyName = 'Name')
or
(DimensionName = 'Fiscal Year' and FriendlyName = 'Name')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Name')
or
(DimensionName = 'OB Forecast Detail' and FriendlyName = 'Name')
or
(DimensionName = 'Service Line Rollup' and FriendlyName = 'Name')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Age Cohort')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Medical Surgical')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Service Line')
or
(DimensionName = 'Modeling Service Line' and FriendlyName = 'Service Line Rollup')
exec dbo.procSysDropTempTable '#failures'
create table #failures ([Message] nvarchar(max), [DimensionName] [nvarchar](128), [FriendlyName] [nvarchar](200))
--attributes with IsModelDriver = 0 that should have = 1
insert into #failures
select 'attribute with IsModelDriver = 0 that should have = 1' as Message, DimensionName, FriendlyName
from viewScoreAttribute where IsModelDriver = 0 and AttributeGUID in(select AttributeGUID from ##modelattrs)
--attributes with IsModelDriver = 1 that should have = 0
insert into #failures
select 'attribute with IsModelDriver = 1 that should have = 0', DimensionName, FriendlyName
from viewScoreAttribute where IsModelDriver = 1 and FriendlyName != 'Name' and AttributeGUID not in(select AttributeGUID from ##modelattrs)
select * from #failures
drop table #failures
drop table ##modelattrs
GO
---------------------------------------------
-- dbo.procLastModifiedSchema
CREATE proc procLastModifiedSchema as
select s.name,o.name, modify_date,
case when type_desc = 'USER_TABLE' then 'Table'
when type_desc = 'SQL_STORED_PROCEDURE' then 'Stored Procedure'
when type_desc in ('SQL_INLINE_TABLE_VALUED_FUNCTION', 'SQL_SCALAR_FUNCTION', 'SQL_TABLE_VALUED_FUNCTION') then 'Function'
end as type_desc
from sys.objects o
inner join sys.schemas s on o.schema_id = s.schema_id
where type in ('U', 'P', 'FN', 'IF', 'TF')
and is_ms_shipped = 0
order by modify_date desc
GO
---------------------------------------------
-- dbo.procLinkedTransferDataBetweenTables
CREATE PROCEDURE [dbo].[procLinkedTransferDataBetweenTables]
(
@SourceTableExpression varchar(max),
@TargetTableExpression varchar(max),
@aWhereClause varchar(max) = '',
@aSelectClause varchar(max) = '*'
)
AS
declare @WhereClause varchar(max);
set @WhereClause = '';
IF (@aWhereClause <> '')
BEGIN
SET @WhereClause = ' WHERE ' + @aWhereClause + ' ';
END
declare @sql varchar(max);
set @sql = '
declare @TargetTableExpression varchar(max);
set @TargetTableExpression = ''' + @TargetTableExpression + ''';
IF ([dbo].[TableExistsByTableExpression] (@TargetTableExpression) = 1)
BEGIN
SET IDENTITY_INSERT ' + @TargetTableExpression + ' ON ;
INSERT INTO ' + @TargetTableExpression + ' SELECT ' + @aSelectClause + ' FROM ' + @SourceTableExpression + ' ' + @WhereClause + ';
SET IDENTITY_INSERT ' + @TargetTableExpression + ' OFF ;
END
ELSE
BEGIN
SELECT ' + @aSelectClause + ' INTO ' + @TargetTableExpression + ' FROM ' + @SourceTableExpression + ' ' + @WhereClause + ';
END
';
print @sql;
exec (@sql);
GO
---------------------------------------------
-- dbo.procLogHistory
create proc [dbo].[procLogHistory]
@username nvarchar(128),
@desc nvarchar(4000),
@cnt int,
@higuid uniqueidentifier
as
INSERT INTO [dbo].[HistoryItem]
(
OBJECTGUID
,[HISTORYITEMGUID]
,[CATEGORY]
,[DESCRIPTION]
,ITEMCOUNT
--,[ISCOMPARABLE]
--,[ISRECOVERABLE]
--,[ISVIEWABLE]
,[METAXML]
,[MODIFIERUSERNAME]
)
VALUES
(
dbo.ZeroGUID()
,@higuid
,'Script' --as Category
,@desc --as Description
,@cnt
--,0
--,0
--,0
,'' --as METAXML
,@username
--,
)
GO
---------------------------------------------
-- dbo.procLogLastSQL
CREATE proc [dbo].[procLogLastSQL]
@username nvarchar(128),
@desc nvarchar(4000),
@higuid uniqueidentifier
--@count int out
as
declare @count int
set @count = @@rowcount
INSERT INTO [dbo].[HistoryItem]
([HISTORYITEMGUID]
,[CATEGORY]
,[DESCRIPTION]
,[METAXML]
,[MODIFIERUSERNAME]
,ITEMCOUNT
)
VALUES
(@higuid
,'Script' --as Category
,@desc --as Description
,'' --as METAXML
,@username
,@count
--,
)
GO
---------------------------------------------
-- dbo.procLogLastSQLImport
CREATE proc [dbo].[procLogLastSQLImport]
@username nvarchar(128),
@desc nvarchar(4000),
@higuid uniqueidentifier ,
@tablename nvarchar(64),
@category nvarchar(64) = 'Import'
as
declare @count int
set @count = @@rowcount
INSERT INTO [dbo].[HistoryItem]
([HISTORYITEMGUID]
,[CATEGORY]
,[DESCRIPTION]
,[METAXML]
,[MODIFIERUSERNAME]
,ITEMCOUNT
)
VALUES
(@higuid
,@category --as Category
,@desc --as Description
,@tablename --as METAXML
,@username
,@count
--,
)
GO
---------------------------------------------
-- dbo.procLogLastSQLImportWithComments
CREATE proc [dbo].[procLogLastSQLImportWithComments]
@username nvarchar(128),
@desc nvarchar(4000),
@higuid uniqueidentifier ,
@tablename nvarchar(64),
@usercomments nvarchar(256),
@elapsedms int = 0,
@userguid uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@category nvarchar(64) = 'Import'
as
declare @count int
set @count = @@rowcount
INSERT INTO [dbo].[HistoryItem]
([HISTORYITEMGUID]
,[CATEGORY]
,[DESCRIPTION]
,[METAXML]
,[MODIFIERUSERNAME]
,[USERCOMMENTS]
,ITEMCOUNT
,ELAPSEDMS
,MODIFIERUSERGUID
)
VALUES
(@higuid
,@category --as Category
,@desc --as Description
,@tablename --as METAXML
,@username
,@usercomments
,@count
,@elapsedms
,@userguid
--,
)
GO
---------------------------------------------
-- dbo.procLogObjectHistory
CREATE proc [dbo].[procLogObjectHistory]
@entityguid uniqueidentifier,
@desc nvarchar(4000),
@cnt int,
@higuid uniqueidentifier OUTPUT
as
declare @username nvarchar(64)
set @username = left(system_user,64)
set @higuid = newid()
INSERT INTO [dbo].[HistoryItem]
(
OBJECTGUID
,[HISTORYITEMGUID]
,[CATEGORY]
,[DESCRIPTION]
,ITEMCOUNT
--,[ISCOMPARABLE]
--,[ISRECOVERABLE]
--,[ISVIEWABLE]
,[METAXML]
,[MODIFIERUSERNAME]
)
VALUES
(
@entityguid
,@higuid
,'Script' --as Category
,@desc --as Description
,@cnt
--,0
--,0
--,0
,'' --as METAXML
,@username
--,
)
GO
---------------------------------------------
-- dbo.procLogObjectHistoryItemGUID
create proc [dbo].[procLogObjectHistoryItemGUID]
@entityguid uniqueidentifier,
@desc nvarchar(4000),
@cnt int,
@higuid uniqueidentifier
as
declare @username nvarchar(64)
set @username = left(system_user,64)
if @higuid is null begin
print 'Invalid higuid'
return
end
INSERT INTO [dbo].[HistoryItem]
(
OBJECTGUID
,[HISTORYITEMGUID]
,[CATEGORY]
,[DESCRIPTION]
,ITEMCOUNT
--,[ISCOMPARABLE]
--,[ISRECOVERABLE]
--,[ISVIEWABLE]
,[METAXML]
,[MODIFIERUSERNAME]
)
VALUES
(
@entityguid
,@higuid
,'Script' --as Category
,@desc --as Description
,@cnt
--,0
--,0
--,0
,'' --as METAXML
,@username
--,
)
GO
---------------------------------------------
-- dbo.procLogObjectHistoryItemGUIDObjectType
create proc [dbo].[procLogObjectHistoryItemGUIDObjectType]
@objecttype nvarchar(4000),
@entityguid uniqueidentifier,
@desc nvarchar(4000),
@cnt int,
@higuid uniqueidentifier
as
declare @username nvarchar(64)
set @username = left(system_user,64)
if @higuid is null begin
print 'Invalid higuid'
return
end
INSERT INTO [dbo].[HistoryItem]
(
OBJECTGUID
,[HISTORYITEMGUID]
,[CATEGORY]
,[DESCRIPTION]
,ITEMCOUNT
--,[ISCOMPARABLE]
--,[ISRECOVERABLE]
--,[ISVIEWABLE]
,[METAXML]
,[MODIFIERUSERNAME]
,OBJECTTYPE
)
VALUES
(
@entityguid
,@higuid
,'Script' --as Category
,@desc --as Description
,@cnt
--,0
--,0
--,0
,'' --as METAXML
,@username
,@objecttype
--,
)
GO
---------------------------------------------
-- dbo.procLogScript
CREATE proc [dbo].[procLogScript]
@desc nvarchar(4000),
@higuid uniqueidentifier OUTPUT
as
set nocount on
declare @username nvarchar(64)
set @username = left(system_user,64)
if (@higuid is null or @higuid = dbo.ZeroGUID() or exists(select 1 from dbo.HistoryItem where HistoryItemGUID = @higuid)) begin
set @higuid = newid()
end
INSERT INTO [dbo].[HistoryItem]
([HISTORYITEMGUID]
,[CATEGORY]
,[DESCRIPTION]
,[METAXML]
,[MODIFIERUSERNAME]
)
VALUES
(@higuid
,'Script' --as Category
,@desc --as Description
,'' --as METAXML
,@username
--,
)
GO
---------------------------------------------
-- dbo.procLogin
CREATE procedure [dbo].[procLogin]
@username nvarchar(64),
@password nvarchar(64),
@orgpin nvarchar(6) = '',
@ipaddress varchar(15) = 'none',
@tokentype int = 0
AS
SET NOCOUNT ON
declare @userguid uniqueidentifier
declare @cnt int
declare @IsSysAdmin bit
SELECT
@userguid = UP.USERGUID,
@cnt = count(*),
@IsSysAdmin = ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS bit),0)
FROM
UserProfile UP
left join [dbo].[S3IdentityLink] IL on UP.UserGUID = IL.MemberGUID and IL.GroupingGUID = (select UserGroupGUID from [dbo].[UserGroup] where GlobalID = 'GEN - User Administrator')
WHERE
UP.USERNAME = @USERNAME
AND (convert(varbinary, UP.HASHEDPASSWORD) = convert(varbinary, @PASSWORD))
AND UP.IsDisabled = 0
group by UP.userguid, IL.GroupingGUID
IF @cnt > 0 BEGIN
declare @TOKENGUID uniqueidentifier
SET @TOKENGUID = newid()
INSERT INTO
CurrentUser (TOKENGUID, USERGUID, IPADDRESS, TokenType, UserName)
VALUES
(@TOKENGUID, @USERGUID, @IPADDRESS, @tokentype, @username)
SELECT @TOKENGUID AS TOKENGUID, @USERGUID as USERGUID, @USERNAME as USERNAME, @IsSysAdmin as ISSYSADMIN, @tokentype as TOKENTYPE
END
GO
---------------------------------------------
-- dbo.procLoginCheck
CREATE procedure [dbo].[procLoginCheck]
@username nvarchar(64),
@password nvarchar(64),
@orgpin nvarchar(6) = '',
@ipaddress varchar(15) = 'none'
AS
SET NOCOUNT ON
SELECT
cast('00000000-0000-0000-0000-000000000000' as uniqueidentifier) as TOKENGUID,
UP.USERGUID,
UP.USERNAME,
ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS bit),0) AS IsSysAdmin,
0 as 'TOKENTYPE'
FROM
UserProfile UP
left join [dbo].[S3IdentityLink] IL on UP.UserGUID = IL.MemberGUID and IL.GroupingGUID = (select UserGroupGUID from [dbo].[UserGroup] where GlobalID = 'GEN - User Administrator')
WHERE
UP.USERNAME = @USERNAME
AND convert(varbinary, UP.HASHEDPASSWORD) = convert(varbinary, @PASSWORD)
AND UP.IsDisabled = 0
GO
---------------------------------------------
-- dbo.procLoginCheckSSO
CREATE procedure [dbo].[procLoginCheckSSO]
@username nvarchar(64),
@authid nvarchar(128),
@ipaddress varchar(15) = 'None'
AS
SET NOCOUNT ON
SELECT
cast('00000000-0000-0000-0000-000000000000' as uniqueidentifier) as TOKENGUID,
UP.USERGUID,
UP.USERNAME,
ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS bit),0) AS IsSysAdmin,
0 as 'TOKENTYPE'
FROM
UserProfile UP
left join [dbo].[S3IdentityLink] IL on UP.UserGUID = IL.MemberGUID and IL.GroupingGUID = (select UserGroupGUID from [dbo].[UserGroup] where GlobalID = 'GEN - User Administrator')
WHERE
UP.USERNAME = @USERNAME
AND UP.AUTHID = @AUTHID
AND UP.IsDisabled = 0
GO
---------------------------------------------
-- dbo.procLoginGetUserGUID
create proc procLoginGetUserGUID
@username nvarchar(max)
as
select userguid from userprofile where username = @username
GO
---------------------------------------------
-- dbo.procLoginGetUserSalt
CREATE PROCEDURE [dbo].[procLoginGetUserSalt]
@username nvarchar(max)
AS
BEGIN
select salt from userprofile where username = @username
END
GO
---------------------------------------------
-- dbo.procLoginNewToken
CREATE procedure [dbo].[procLoginNewToken]
@tokenguid uniqueidentifier,
@ipaddress varchar(15),
@ttl integer = 0,
@updatelastactionstamp bit = 1,
@tokentype int = 0
as
SET NOCOUNT ON
declare @userguid uniqueidentifier
declare @username nvarchar(64)
declare @cnt int
declare @IsSysAdmin bit
if((select count(*) from [dbo].[CurrentUser] (readuncommitted) where TokenGUID = @tokenguid and UserGUID = '10101010-1111-0000-1111-101010101010') > 0) begin
select @username = UserName from [dbo].[CurrentUser] where TokenGUID = @tokenguid
set @userguid = '10101010-1111-0000-1111-101010101010'
set @cnt = 1
set @IsSysAdmin = 1
end else begin
SELECT
@userguid = CU.USERGUID,
@username = UP.USERNAME,
@cnt = count(*),
@IsSysAdmin = ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS bit),0)
FROM
CurrentUser CU (readuncommitted)
INNER JOIN UserProfile UP (readuncommitted) ON CU.UserGUID = UP.UserGUID
left join [dbo].[S3IdentityLink] IL on UP.UserGUID = IL.MemberGUID and IL.GroupingGUID = (select UserGroupGUID from [dbo].[UserGroup] where GlobalID = 'GEN - User Administrator')
WHERE
TOKENGUID = @tokenguid
AND UP.IsDisabled = 0
group by CU.userguid, UP.username, IL.GroupingGUID
end
IF @cnt > 0 BEGIN
declare @NEWTOKENGUID uniqueidentifier
SET @NEWTOKENGUID = newid()
INSERT INTO
CurrentUser (TOKENGUID, USERGUID, IPADDRESS, LASTACTIONSTAMPUTC, TokenType, UserName)
VALUES
(@NEWTOKENGUID, @USERGUID, @IPADDRESS, DATEADD(day,@ttl,getUTCDate()), @tokentype, @username)
SELECT @NEWTOKENGUID AS TOKENGUID, @USERGUID as USERGUID, @USERNAME as USERNAME, @IsSysAdmin as ISSYSADMIN, @tokentype as TOKENTYPE
END
GO
---------------------------------------------
-- dbo.procLoginReauthenticate
CREATE PROC [dbo].[procLoginReauthenticate]
@tokenguid UNIQUEIDENTIFIER,
@ipaddress VARCHAR(15),
@ttl INTEGER = 0,
@updatelastactionstamp BIT = 1
AS
SET NOCOUNT ON
IF @updatelastactionstamp = 1 BEGIN
UPDATE CurrentUser
SET LastActionStampUtc = DATEADD(day, @ttl, GETUTCDATE())
WHERE TOKENGUID = @tokenguid
END
SELECT CU.TOKENGUID, CU.USERGUID, CU.USERNAME,
CAST((COALESCE((ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS BIT),0)), CASE WHEN CU.UserGUID = dbo.GetSuperUserGUID() THEN 1 ELSE 0 END)) AS BIT) AS [IsSysAdmin],
CU.TokenType
FROM CurrentUser CU
LEFT JOIN UserProfile UP ON CU.UserGUID = UP.UserGUID
LEFT JOIN [dbo].[S3IdentityLink] IL ON UP.UserGUID = IL.MemberGUID AND IL.GroupingGUID = (SELECT UserGroupGUID FROM [dbo].[UserGroup] WHERE GlobalID = 'GEN - User Administrator')
WHERE TOKENGUID = @tokenguid AND ISNULL(UP.IsDisabled, 0) = 0
GO
---------------------------------------------
-- dbo.procLoginRecreate
CREATE PROC [dbo].[procLoginRecreate]
@tokenguid UNIQUEIDENTIFIER,
@username NVARCHAR(64),
@hashedpassword NVARCHAR(64),
@orgpin NVARCHAR(6) = '',
@ipaddress VARCHAR(15) = 'none',
@tokentype INT = 0,
@ttl INT = 0
AS
SET NOCOUNT ON
DECLARE @userguid UNIQUEIDENTIFIER
DECLARE @cnt INT
DECLARE @IsSysAdmin BIT
SELECT
@userguid = USERGUID,
@cnt = COUNT(*),
@IsSysAdmin = ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS BIT), 0)
FROM
UserProfile UP
LEFT JOIN [dbo].[S3IdentityLink] IL ON UP.UserGUID = IL.MemberGUID AND IL.GroupingGUID = (SELECT UserGroupGUID FROM [dbo].[UserGroup] WHERE GlobalID = 'GEN - User Administrator')
WHERE
USERNAME = @USERNAME
AND (CONVERT(VARBINARY, HASHEDPASSWORD) = CONVERT(VARBINARY, @HashedPASSWORD))
AND IsDisabled = 0
GROUP BY userguid, IL.GroupingGUID
IF @cnt > 0 BEGIN
DECLARE @LastActionStampUtc DATETIME
SET @LastActionStampUtc = DATEADD(d,@TTL, GETUTCDATE())
IF NOT EXISTS(SELECT 1 FROM CurrentUser WHERE TokenGUID = @tokenguid)
BEGIN
INSERT INTO CurrentUser (TOKENGUID, USERGUID, IPADDRESS, TokenType, LastActionStampUtc, UserName)
VALUES(@TOKENGUID, @USERGUID, @IPADDRESS, @tokentype, @LastActionStampUtc, @username)
END
ELSE
BEGIN
UPDATE CurrentUser SET LastActionStampUtc = @LastActionStampUtc WHERE TokenGUID = @tokenguid
END
SELECT @TOKENGUID AS TOKENGUID, @USERGUID AS USERGUID, @USERNAME AS USERNAME, @IsSysAdmin AS ISSYSADMIN, @tokentype AS TOKENTYPE
END
GO
---------------------------------------------
-- dbo.procLoginSSO
CREATE procedure [dbo].[procLoginSSO]
@username nvarchar(64),
@authid nvarchar(128),
@ipaddress varchar(15) = 'none',
@tokentype int = 0
AS
SET NOCOUNT ON
declare @userguid uniqueidentifier
declare @cnt int
declare @IsSysAdmin bit
SELECT
@userguid = USERGUID,
@cnt = count(*),
@IsSysAdmin = ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS bit),0)
FROM
UserProfile UP
left join [dbo].[S3IdentityLink] IL on UP.UserGUID = IL.MemberGUID and IL.GroupingGUID = (select UserGroupGUID from [dbo].[UserGroup] where GlobalID = 'GEN - User Administrator')
WHERE
USERNAME = @USERNAME
AND AUTHID = @AUTHID
AND IsDisabled = 0
group by userguid, IL.GroupingGUID
IF @cnt > 0 BEGIN
DECLARE @tokenguid uniqueidentifier
SET @TOKENGUID = newid()
INSERT INTO
CurrentUser (TOKENGUID, USERGUID, IPADDRESS, TokenType, UserName)
VALUES
(@TOKENGUID, @USERGUID, @IPADDRESS, @tokentype, @username)
SELECT @TOKENGUID AS TOKENGUID, @USERGUID as USERGUID, @USERNAME as USERNAME, @IsSysAdmin as ISSYSADMIN, @tokentype as TokenType
END
GO
---------------------------------------------
-- dbo.procLogoffInactiveUsers
CREATE PROC [dbo].[procLogoffInactiveUsers]
AS
SET NOCOUNT ON
DECLARE @timeoutMinutes INT
SET @timeoutMinutes = 360 --121
INSERT INTO ActionLog(Action, SubAction, Details, Username, DateTimeStamp, Duration)
SELECT 'Logout', 'Inactivity Logout', CAST(USERGUID AS NVARCHAR(36)), 'procLogoffInactiveUsers', GETUTCDATE(), 0 FROM CurrentUser WHERE DATEDIFF(mi, lastactionstamputc, GETUTCDATE()) > @timeoutMinutes
DELETE FROM CurrentUser WHERE DATEDIFF(mi, lastactionstamputc, GETUTCDATE()) > @timeoutMinutes
GO
---------------------------------------------
-- dbo.procLogout
CREATE procedure [dbo].[procLogout]
@tokenguid uniqueidentifier,
@ipaddress varchar(15) = 'none'
as
SET NOCOUNT ON
insert into ActionLog(Action, SubAction, Details, Username, DateTimeStamp, Duration) select 'Logout', 'DB Logout', 'procLogout', UserName, GETDATE(), 0 from [dbo].[CurrentUser] where TOKENGUID = @TOKENGUID
DELETE FROM CurrentUser where TOKENGUID = @TOKENGUID --and IPADDRESS = @IPADDRESS
GO
---------------------------------------------
-- dbo.procLogoutAllUsers
CREATE procedure [dbo].[procLogoutAllUsers]
as
SET NOCOUNT ON
insert into ActionLog(Action, SubAction, Details, Username, DateTimeStamp, Duration) select 'Logout', 'DB Logout', 'procLogoutAllUsers', UserName, GETDATE(), 0 from [dbo].[CurrentUser]
DELETE FROM CurrentUser WHERE TokenType = 0;
EXEC dbo.procLogoffInactiveUsers;
GO
---------------------------------------------
-- dbo.procMEImprovDataRemoveDuplicates
CREATE proc dbo.procMEImprovDataRemoveDuplicates
as
--try to resolve duplicates by removing blank values
if (exists(select 1 from MEImprovData group by modelguid, row, col having count(*) > 1)) begin
delete from MEImprovData
where
Formula = '' and CellValue = '' and
(
ImprovDataGUID in(select min(improvdataguid) from MEImprovData group by modelguid, row, col having count(*) > 1)
or ImprovDataGUID in(select max(improvdataguid) from MEImprovData group by modelguid, row, col having count(*) > 1)
)
end
--remove remaining duplicates with the same value
if (exists(select 1 from MEImprovData group by modelguid, row, col, formula, cellvalue having count(*) > 1)) begin
delete from MEImprovData
where
ImprovDataGUID in(select min(improvdataguid) from MEImprovData group by modelguid, row, col, formula, cellvalue having count(*) > 1)
end
GO
---------------------------------------------
-- dbo.procMEModelChangeDebug
CREATE proc dbo.procMEModelChangeDebug
@higuid uniqueidentifier,
@address nvarchar(max),
@lookbackDays int = 7
as
--input related info
declare @modelguid uniqueidentifier
select @modelguid = ObjectGUID from HistoryItem where HistoryItemGUID = @higuid
declare @dtname nvarchar(max)
select
@dtname = dt.FriendlyName
from
ScoreTupleDataHistoryChangeItem ci
inner join ScoreDataTable dt on dt.DataTableGUID = ci.DataTableGUID
where
ci.HistoryItemGUID = @higuid;
--determine lookback range: either since last touch to this cell, or X days
declare @enddate datetime
select @enddate = DateTimeStamp from HistoryItem where HISTORYITEMGUID = @higuid
declare @startdate datetime
select top 1
@startdate = hi.DATETIMESTAMP
from
ScoreTupleDataHistoryChangeItem ci
inner join HistoryItem hi on hi.HISTORYITEMGUID = ci.HistoryItemGUID
where
hi.OBJECTGUID = @modelguid
and hi.HISTORYITEMGUID != @higuid
and ci.CellAddress = @address
and ci.BeforeValueString != ci.AfterValueString
and hi.DateTimeStamp < @enddate
order by
hi.DATETIMESTAMP desc;
if (@startdate is null) begin
set @startdate = @enddate - @lookbackDays
end
if (datediff(day, @startdate, @enddate) < @lookbackDays) begin
select @startdate = dateadd(day, -1 * @lookbackDays, @enddate)
end
--other touches of this cell
select
hi.HistoryItemGUID,
hi.DateTimeStamp,
hi.ModifierUserGUID,
hi.ModifierUserName,
cast('Debug Cell Changed' as nvarchar(100)) as Category,
cast(@dtname + ': ' + ci.BeforeValueString + ' -> ' + ci.AfterValueString as nvarchar(max)) as Description
into ##modeldebug
from
ScoreTupleDataHistoryChangeItem ci
inner join HistoryItem hi on hi.HISTORYITEMGUID = ci.HistoryItemGUID
where
hi.OBJECTGUID = @modelguid
and ci.CellAddress = @address
and (hi.HISTORYITEMGUID = @higuid or hi.DATETIMESTAMP between @startdate and @enddate)
and ci.BeforeValueString != ci.AfterValueString;
--fillin change details
insert into ##modeldebug
select
rli.HistoryItemGUID,
rli.DateTimeStamp,
hi.ModifierUserGUID,
hi.ModifierUserName,
'Fillin Change' as Category,
rli.SectionName + ': ' + case when rli.Action = 0 then 'Add' when rli.Action = 1 then 'Move' when rli.Action = 2 then 'Delete' else 'Unknown' end + rli.FillinMemberName as Description
from
ScoreFillinRefreshLogItem rli
inner join HistoryItem hi on hi.HistoryItemGUID = rli.HistoryItemGUID
where
rli.ModelGUID = @modelguid
and rli.DateTimeStamp between @startdate and @enddate;
--other system actions
insert into ##modeldebug
select
hi.HistoryItemGUID,
hi.DateTimeStamp,
hi.ModifierUserGUID,
hi.ModifierUserName,
hi.Category,
hi.Description
from
HistoryItem hi
where
(hi.HISTORYITEMGUID = @higuid or hi.DATETIMESTAMP between @startdate and @enddate)
and (hi.CATEGORY not in('Expansion Changes', 'Model Data Save') or hi.ObjectGUID = @modelguid)
and CATEGORY not in('', 'Contract Model', 'Excel Reporter', 'Form Data', 'Manual Unlock', 'Patient Population Definition', 'Report Action', 'Role Assignment', 'Service Line Definition', 'Service Line Definitions', 'Structure View', 'Workflow')
and Description not like '%Exceptions'
and Description not like 'insert template publish request%'
and Description not in('Sync Expansion Profiles');
--global model saves
if (exists(select 1 from XPlan p inner join EMFModelTemplate t on t.ModelTemplateGUID = p.ModelTemplateGUID where p.PlanGUID = @modelguid and t.Name like 'OB Departmental Budget%')) begin
insert into ##modeldebug
select
hi.HistoryItemGUID,
hi.DateTimeStamp,
hi.ModifierUserGUID,
hi.ModifierUserName,
'Global Model ' + hi.Category as Category,
p.Name as Description
from
HistoryItem hi
inner join XPlan p on p.PlanGUID = hi.ObjectGUID
inner join EMFModelTemplate mt on mt.ModelTemplateGUID = p.ModelTemplateGUID
where
hi.DATETIMESTAMP between @startdate and @enddate
and hi.CATEGORY in('Expansion Changes', 'Model Data Save')
and mt.Name not like 'OB Departmental Budget%'
and mt.Name like 'OB %'
end
--remove unrelated publishes
delete data
from
##modeldebug data
inner join HistoryItem hi on hi.HistoryItemGUID = data.HistoryItemGUID
left join EMFModelTemplate mt on mt.ModelTemplateGUID = hi.ObjectGUID
where
hi.DESCRIPTION = 'Template Architect Publish'
and (mt.ModelTemplateGUID is null or not exists(select 1 from XPlan p where p.PlanGUID = @modelguid and p.ModelTemplateGUID = mt.ModelTemplateGUID));
update data set data.Category = 'Template Publish', data.Description = mt.Name
from
##modeldebug data
inner join HistoryItem hi on hi.HistoryItemGUID = data.HistoryItemGUID
inner join EMFModelTemplate mt on mt.ModelTemplateGUID = hi.ObjectGUID
where
hi.DESCRIPTION = 'Template Architect Publish';
--remove unrelated dimension saves
declare @frameworkID int
select @frameworkID = fw.FrameworkID from PlanType pt inner join Folder f on f.FolderGUID = pt.FolderGUID inner join fw.DimFramework fw on fw.Name = f.Name inner join XPlan p on p.PlanTypeGUID = pt.PlanTypeGUID where p.PlanGUID = @modelguid;
if (@frameworkID is null) begin
set @frameworkID = 0
end
delete data
from
##modeldebug data
inner join HistoryItem hi on hi.HistoryItemGUID = data.HistoryItemGUID
inner join ScoreDimension d on d.DimensionGUID = hi.ObjectGUID
where
hi.DESCRIPTION = 'Dimension Save'
and
(not exists(select 1 from ScoreDimensionFramework df where df.DimensionGUID = d.DimensionGUID and df.FrameworkID in(0, @frameworkID))
or d.FriendlyName like 'Service Line%');
update data set data.Category = 'Dimension Save', data.Description = d.FriendlyName
from
##modeldebug data
inner join HistoryItem hi on hi.HistoryItemGUID = data.HistoryItemGUID
inner join ScoreDimension d on d.DimensionGUID = hi.ObjectGUID
where
hi.DESCRIPTION = 'Dimension Save';
--remove unrelated ds2 saves
delete data
from
##modeldebug data
inner join HistoryItem hi on hi.HistoryItemGUID = data.HistoryItemGUID
inner join scoretableeditorconfig tec on tec.tableeditorconfigguid = hi.ObjectGUID
inner join folder f on f.folderguid = tec.folderguid
left join folder pf on pf.folderguid = f.parentfolderguid
left join folder ppf on ppf.folderguid = pf.parentfolderguid
left join folder pppf on pppf.folderguid = ppf.parentfolderguid
inner join fw.dimframework df on df.name = f.name or df.name = isnull(pf.name, 'Missing') or df.name = isnull(ppf.name, 'Missing') or df.name = isnull(pppf.name, 'Missing')
where
hi.Category = 'Data Studio 2.0'
and (df.FrameworkID != @frameworkID or hi.Description = 'SaveView')
update data set data.Category = 'Data Studio Save', data.Description = tec.FriendlyName
from
##modeldebug data
inner join HistoryItem hi on hi.HistoryItemGUID = data.HistoryItemGUID
inner join scoretableeditorconfig tec on tec.tableeditorconfigguid = hi.ObjectGUID
where
hi.Category = 'Data Studio 2.0'
--remove unrelated data imports
delete data
from
##modeldebug data
inner join HistoryItem hi on hi.HistoryItemGUID = data.HistoryItemGUID
inner join IntTransaction t on t.TransactionGUID = hi.HistoryItemGUID
inner join IntConfig c on c.ConfigID = t.ConfigID
where
hi.Category = 'Data Integration'
and not exists(select 1 from dbo.IntConfigFramework cf where cf.ConfigID = c.ConfigID and cf.FrameworkID = @frameworkID);
update data set data.Description = c.Name
from
##modeldebug data
inner join HistoryItem hi on hi.HistoryItemGUID = data.HistoryItemGUID
inner join IntTransaction t on t.TransactionGUID = hi.HistoryItemGUID
inner join IntConfig c on c.ConfigID = t.ConfigID
where
hi.Category = 'Data Integration';
select * from ##modeldebug data
order by
data.DATETIMESTAMP desc,
data.Category asc;
drop table ##modeldebug;
GO
---------------------------------------------
-- dbo.procMENativeModelingDisable
CREATE proc dbo.procMENativeModelingDisable
as
set nocount on
update [ob].[SystemSetting] set Value = '0' where Name = 'Native Modeling Enabled'
update [cap].[SystemSetting] set Value = '0' where Name = 'Native Modeling Enabled'
declare @templateGUID uniqueidentifier
declare crsTemplates cursor fast_forward for select ModelTemplateGUID from [dbo].[EMFModelTemplate] where IsMemoryCachable = 1
open crsTemplates
fetch next from crsTemplates into @templateGUID
while (@@fetch_status = 0) begin
exec [dbo].[procInvalidateModelWorkbookCache] @templateGUID, 1, 0, 'procMENativeModelingDisable'
update [dbo].[EMFModelTemplate] set IsModelWorkbookCachable = 0, IsMemoryCachable = 0 where ModelTemplateGUID = @templateGUID
update [dbo].[XPlan] set IsModelWorkbookCached = 0 where ModelTemplateGUID = @templateGUID
fetch next from crsTemplates into @templateGUID
end
close crsTemplates
deallocate crsTemplates
truncate table dbo.ModelCacheLookup
update [dbo].[TEScheduledTask] set IsDisabled = 1 where Name = 'GM Prime Model Cache'
update ob.SystemSetting set Value = DefaultValue where Name = 'Native Modeling Priming Limit'
print('NOTE: If you intend to leave Native Modeling permanently disabled, you will need to manually update plan and directory toolbars to fix the visibility of Edit Budget and Edit Expansion tools.');
GO
---------------------------------------------
-- dbo.procMENativeModelingEnable
CREATE PROCEDURE dbo.procMENativeModelingEnable
@cacheServerName NVARCHAR(100) = 'default',
@enablePriming BIT = 1,
@domain NVARCHAR(100) = 'sdt.local',
@frameworkID SMALLINT = 2, --OB
@isMemoryCachePersisted BIT = 1,
@isForTraining BIT = 0
AS
BEGIN
SET NOCOUNT ON
IF @frameworkID = 2
BEGIN
UPDATE ob.SystemSetting
SET Value = '1'
WHERE Name = 'Native Modeling Enabled'
END
IF @frameworkID = 1
BEGIN
UPDATE cap.SystemSetting
SET Value = '1'
WHERE Name = 'Native Modeling Enabled'
END
DECLARE @frameworkName NVARCHAR(100)
DECLARE @frameworkAbbreviation NVARCHAR(10)
SELECT @frameworkName = Name
FROM fw.DimFramework
WHERE FrameworkID = @frameworkID
SELECT @frameworkAbbreviation = CASE
WHEN Abbreviation = 'CM'
THEN 'CAP'
ELSE Abbreviation
END
FROM fw.DimFramework
WHERE FrameworkID = @frameworkID
DECLARE @jazzVersion NVARCHAR(6)
SELECT @jazzVersion = replace(Setting, '.', '')
FROM dbo.DBSetting
WHERE Name = 'GENERAL_APPVERSION'
IF @cacheServerName = 'default'
BEGIN
SELECT @cacheServerName = 'Setting'
FROM dbo.DBSetting
WHERE Name = 'MODELING_LOADBALANCED_CACHE_BASE_URL'
END
ELSE
BEGIN
SET @cacheServerName = 'http://' + @cacheServerName + '.' + @domain
END
--dbsettings
EXEC dbo.procChangeDBSetting 'MODELING_LOADBALANCED_CACHE_BASE_URL', @cacheServerName
EXEC dbo.procChangeDBSetting 'MODELING_ISFILECACHECOMPRESSED', '0'
--template settings
UPDATE dbo.EMFModelTemplate
SET IsModelWorkbookCachable = @isMemoryCachePersisted,
IsMemoryCachable = 1,
IsModelRefreshOnFillinChange = 0
WHERE Name LIKE @frameworkAbbreviation + ' %'
--do not clear HasModelDependents for CAP Advanced Project Pro Forma - it's required for Depreciation re-calculation
DECLARE @capProFormaTemplateGUID UNIQUEIDENTIFIER = '538EAAB2-22B1-41BA-882E-6EFB9C262062'
UPDATE dbo.EMFModelTemplate
SET HasModelDependents = 0
WHERE Name LIKE @frameworkAbbreviation + ' %'
AND ModelTemplateGUID <> @capProFormaTemplateGUID
--plan settings
UPDATE dbo.XPlan
SET IsModelRefreshEnabled = 1,
IsModelWorkbookCached = 0
WHERE ModelTemplateGUID IN (
SELECT mt.ModelTemplateGUID
FROM dbo.EMFModelTemplate mt
WHERE mt.Name LIKE @frameworkAbbreviation + ' %'
)
--scheduled task
IF @enablePriming = 1 AND @isMemoryCachePersisted = 1
BEGIN
UPDATE dbo.TEScheduledTask
SET IsDisabled = 0
WHERE Name = 'GM Prime Model Cache'
END
--hide edit expansions in form
UPDATE dbo.CustomMenuContent
SET ContentXML = replace(cast(ContentXML AS NVARCHAR(max)), '', '')
WHERE CustomMenuGUID IN (
SELECT f.CustomMenuGUID
FROM dbo.FE2Form f
INNER JOIN dbo.PlanType pt
ON pt.PlanTypeGUID = f.PlanTypeGUID
INNER JOIN dbo.Folder ptf
ON ptf.FolderGuid = pt.FolderGUID
WHERE ptf.Name = @frameworkName
)
AND cast(ContentXML AS NVARCHAR(max)) LIKE '%%'
--limit priming for training
IF (@frameworkID = 2)
BEGIN --OB only
IF (@isForTraining = 1)
BEGIN
UPDATE ob.SystemSetting
SET Value = '10'
WHERE Name = 'Native Modeling Priming Limit'
END
ELSE
BEGIN
UPDATE ob.SystemSetting
SET Value = DefaultValue
WHERE Name = 'Native Modeling Priming Limit'
END
END
PRINT ('Complete!');
PRINT ('MANUAL POST STEPS');
PRINT ('1) Clear Application Cache from Admin Tools');
PRINT ('2) Ensure Edit Budget tool is visible in both the workspace (Custom Menus->OB Directory Toolbar) and on the form (Plan Type Setup->Edit Form->Edit Toolbar)');
IF (@enablePriming = 1)
BEGIN
PRINT ('3) Wait for tasks to finish and System Diagnostics to show no Modeling issues');
PRINT ('4) Confirm you can launch a model and navigation looks ok');
END
END
GO
---------------------------------------------
-- dbo.procMEPHSectionConfigDefaultInsert
CREATE proc [dbo].[procMEPHSectionConfigDefaultInsert] as
exec procScoreRebuildDimensionMemberView
declare @sql nvarchar(max)
set @sql = '
insert into MEPHSectionConfig
(ModelTemplateGUID, PHSectionDimensionGUID, PHSectionMemberGUID, FriendlyName)
select distinct
mt.ModelTemplateGUID, k1.DimensionGUID, dm.MemberGUID, dm.MemberName
from
EMFModelTemplate mt
inner join EMFModelTemplateLinkSource ls on mt.ModelTemplateGUID = ls.ModelTemplateGUID
inner join ScoreComposite sc on ls.ParentScoreCompositeTableGUID = sc.CompositeGUID
inner join ScoreCompositeLink scl on sc.CompositeGUID = scl.CompositeGUID
inner join ScoreAttribute k1 on scl.Key1GUID = k1.AttributeGUID
inner join fw.viewScoreDimensionMember dm on k1.DimensionGUID = dm.DimensionGUID
where
scl.IsPlaceholder = 1
and not exists (
select 1
from
MEPHSectionConfig phx
where
phx.PHSectionDimensionGUID = k1.DimensionGUID
and phx.PHSectionMemberGUID = dm.MemberGUID
)'
--dynamic to remove dependency on fw schema
exec (@sql)
GO
---------------------------------------------
-- dbo.procMEPHSectionDuplicatesResolve
CREATE proc dbo.procMEPHSectionDuplicatesResolve
@isdebug bit = 0
as
--always remove invalid phsections first to avoid false positives
delete from [dbo].[MEPHSection] where PHSectionGUID not in(select v.PHSectionGUID from [dbo].[viewMEPHSection] v)
declare crsDupes cursor fast_forward for select distinct PlanTypeGUID, ModelTemplateGUID, PHSectionDimensionGUID, PHSectionMemberGUID from [dbo].[viewMEPHSectionDuplicates] where ModelTemplateGUID not in(select ChildModelTemplateGUID from [dbo].[MEScoreExpansionProfile])
declare @ptguid uniqueidentifier
declare @mtguid uniqueidentifier
declare @dimguid uniqueidentifier
declare @memberguid uniqueidentifier
declare @debugsql nvarchar(max)
declare @phsectionguid uniqueidentifier
open crsDupes
fetch next from crsDupes into @ptguid, @mtguid, @dimguid, @memberguid
while(@@fetch_status = 0) begin
select top 1 @phsectionguid = PHSectionGUID from [dbo].[viewMEPHSection] where PlanTypeGUID = @ptguid and ModelTemplateGUID = @mtguid and PHSectionDimensionGUID = @dimguid and PHSectionMemberGUID = @memberguid
select @debugsql = 'select ''' + cast(@phsectionguid as nvarchar(36)) + ''' as Guess, * from dbo.viewMEPHSectionDuplicates where PlanTypeGUID = ''' + cast(@ptguid as nvarchar(36)) + ''' and ModelTemplateGUID = ''' + cast(@mtguid as nvarchar(36)) + ''' and PHSectionDimensionGUID = ''' + cast(@dimguid as nvarchar(36)) + ''' and PHSectionMemberGUID = ''' + cast(@memberguid as nvarchar(36)) + ''''
if (@isdebug = 1) begin
print @debugsql
end
--if one of the dupes is not configured, delete that one
if ((select count(*) from [dbo].[MEPHSection] where PlanTypeGUID = @ptguid and ModelTemplateGUID = @mtguid and PHSectionDimensionGUID = @dimguid and PHSectionMemberGUID = @memberguid and RuleType != 0) = 1) begin
if (@isdebug = 1) begin
print 'AUTO: duplicates differ by type, delete ''none'' sections
'
end else begin
delete from [dbo].[MEPHSection] where PlanTypeGUID = @ptguid and ModelTemplateGUID = @mtguid and PHSectionDimensionGUID = @dimguid and PHSectionMemberGUID = @memberguid and RuleType = 0
end
end else begin
--if dupes are identical delete the one that is invisible in PSM
if((select count(*) from [dbo].[viewMEPHSectionDuplicates] d where d.PlanTypeGUID = @ptguid and d.ModelTemplateGUID = @mtguid and d.PHSectionDimensionGUID = @dimguid and d.PHSectionMemberGUID = @memberguid and not exists(select 1 from [dbo].[viewMEPHSectionDuplicates] f where f.PlanTypeGUID = @ptguid and f.ModelTemplateGUID = @mtguid and f.PHSectionDimensionGUID = @dimguid and f.PHSectionMemberGUID = @memberguid and f.FriendlyName = d.FriendlyName and f.SortType = d.SortType and f.IsConstantIndex = d.IsConstantIndex and f.RootHierarchyPath = d.RootHierarchyPath and f.DefaultHierarchyPath = d.DefaultHierarchyPath and f.IsAppend = d.IsAppend and f.IsHidden = d.IsHidden and f.IsReadOnly = d.IsReadOnly and f.IsExclusive = d.IsExclusive and f.RuleType = d.RuleType and f.IsOneTime = d.IsOneTime and f.IsClearOnRefresh = d.IsClearOnRefresh and f.ExclusivityGroup = d.ExclusivityGroup and f.IsOrderByName = d.IsOrderByName and f.PHSectionGUID != d.PHSectionGUID)) = 0) begin
if (@isdebug = 1) begin
print 'AUTO: duplicates are identical, delete extras
'
end else begin
delete from [dbo].[MEPHSection] where PHSectionGUID = @phsectionguid
end
end else begin
--otherwise we will remove the first one listed in viewMEPHSection, as this should be the one that is invisible in PSM
if (@isdebug = 1) begin
print 'GUESS: duplicates differ by misc properties
'
end else begin
delete from [dbo].[MEPHSection] where PHSectionGUID = @phsectionguid
end
end
end
fetch next from crsDupes into @ptguid, @mtguid, @dimguid, @memberguid
end
close crsDupes
deallocate crsDupes
if (@isdebug = 0) begin
exec [dbo].[procMEScoreExpansionProfileSyncTemplatesAll] @isPreservingChildMappings = 1
if (exists(select 1 from [dbo].[viewMEPHSectionDuplicates])) begin
print 'FAILED: Some duplicate PH sections count not be auto-resolved.'
end else begin
print 'Success'
end
end
GO
---------------------------------------------
-- dbo.procMEScoreExpansionGetMaxCount
CREATE PROC [dbo].[procMEScoreExpansionGetMaxCount]
@templateGUID UNIQUEIDENTIFIER,
@phSectionName NVARCHAR(100),
@ignoreOverrides bit = 0
AS
DECLARE @baseCount INT = NULL,
@ovrCount INT = NULL,
@baseTemplateGUID UNIQUEIDENTIFIER = @templateGUID;
IF EXISTS (SELECT TOP 1 1 FROM [dbo].[MEScoreExpansionProfile] WHERE [ChildModelTemplateGUID] = @templateGUID) BEGIN
-- find base template guid
SELECT TOP 1 @baseTemplateGUID = [ParentModelTemplateGUID] FROM [dbo].[MEScoreExpansionProfile] WHERE [ChildModelTemplateGUID] = @templateGUID
END
SELECT @baseCount = MAX(E.[Count])
FROM [dbo].[MEScoreExpansion] AS E WITH (READUNCOMMITTED)
INNER JOIN [dbo].[viewMECell] AS XC ON E.[ExcelCellGUID] = XC.[CellGUID]
WHERE E.[GlobalID] = @phSectionName AND XC.[BookGUID] = @baseTemplateGUID
SELECT @ovrCount = MAX(OVR.[CountOverride])
FROM [dbo].[MEScoreExpansionOverride] AS OVR
INNER JOIN [dbo].[MEScoreExpansionProfile] AS P ON P.[ExpansionProfileGUID] = OVR.[ExpansionProfileGUID]
WHERE OVR.[ExpansionGlobalID] = @phSectionName AND P.[ChildModelTemplateGUID] = @templateGUID
IF (@baseCount IS NULL) BEGIN
SELECT 0
END ELSE BEGIN
IF (@ovrCount IS NOT NULL and @ignoreOverrides = 0) BEGIN
SELECT @ovrCount
END ELSE BEGIN
SELECT @baseCount
END
END
GO
---------------------------------------------
-- dbo.procMEScoreExpansionProfileApplyOverrides
create proc dbo.procMEScoreExpansionProfileApplyOverrides
@childMTGUID uniqueidentifier
as
set nocount on
update SE set SE.Count = OVR.CountOverride
from
[dbo].[MEScoreExpansion] SE
inner join [dbo].[viewMECell] XC on XC.ExcelCellGUID = SE.ExcelCellGUID
inner join [dbo].[MEScoreExpansionProfile] EP on EP.ChildModelTemplateGUID = XC.ModelTemplateGUID
inner join [dbo].[MEScoreExpansionOverride] OVR on OVR.ExpansionGlobalID = SE.GlobalID and OVR.ExpansionProfileGUID = EP.ExpansionProfileGUID
where
XC.ModelTemplateGUID = @childMTGUID
GO
---------------------------------------------
-- dbo.procMEScoreExpansionProfileDelete
create proc dbo.procMEScoreExpansionProfileDelete
@profileGUID uniqueidentifier
as
declare @childMTGUID uniqueidentifier
select @childMTGUID = ChildModelTemplateGUID from [dbo].[MEScoreExpansionProfile] where ExpansionProfileGUID = @profileGUID
exec [dbo].[procEMFRemoveTemplateMappings] @childMTGUID
delete from [dbo].[S3SimplePermission] where LootID in(select MS.ModelSectionGUID from [dbo].[ModelSection] MS inner join [dbo].[EMFModelTemplateWorksheet] WS on WS.WorksheetGUID = MS.SheetGUID where WS.ModelTemplateGUID = @childMTGUID)
delete from [dbo].[ModelSection] where SheetGUID in(select WS.WorksheetGUID from [dbo].[EMFModelTemplateWorksheet] WS where WS.ModelTemplateGUID = @childMTGUID)
delete from [dbo].[MEPHSectionRuleValue] where PHSectionGUID in(select PHS.PHSectionGUID from [dbo].[MEPHSection] PHS where PHS.ModelTemplateGUID = @childMTGUID)
delete from [dbo].[MEPHSection] where ModelTemplateGUID = @childMTGUID
delete from [dbo].[MEFillinTemplate] where ModelTemplateGUID = @childMTGUID
delete from [dbo].[EMFModelTemplateWorksheet] where ModelTemplateGUID = @childMTGUID;
delete from [dbo].[EMFModelTemplateLinkSource] where ModelTemplateGUID = @childMTGUID;
delete from [dbo].[DataPathFile_ModelTemplate] where CAST(FullPath as nvarchar(51)) = 'ModelTemplates\' + CAST(@childMTGUID as nvarchar(36));
delete from [dbo].[EMFModelTemplate] where ModelTemplateGUID = @childMTGUID
delete from [dbo].[MEScoreExpansionProfile] where ExpansionProfileGUID = @profileGUID
GO
---------------------------------------------
-- dbo.procMEScoreExpansionProfileFitPlans
CREATE PROC [dbo].[procMEScoreExpansionProfileFitPlans]
@templateGUID UNIQUEIDENTIFIER,
@planGUIDList NVARCHAR(MAX) = NULL,
@expansionPadding TINYINT = 10
AS
SET NOCOUNT ON
IF EXISTS (SELECT TOP 1 1 FROM [dbo].[MEScoreExpansionProfile] WHERE [ChildModelTemplateGUID] = @templateGUID)
BEGIN
-- we are in the child profile, switch to main template
SELECT TOP 1 @templateGUID = [ParentModelTemplateGUID] FROM [dbo].[MEScoreExpansionProfile] WHERE [ChildModelTemplateGUID] = @templateGUID
END
IF EXISTS (SELECT TOP 1 1 FROM [dbo].[MEScoreExpansionProfile] WHERE [ParentModelTemplateGUID] = @templateGUID)
BEGIN
CREATE TABLE #PossiblePlanToTemplateMap (
[PlanGUID] UNIQUEIDENTIFIER NOT NULL,
[ModelTemplateGUID] UNIQUEIDENTIFIER NOT NULL,
[UsageOrder] INT NOT NULL
);
CREATE TABLE #NewPlanToTemplateMap (
[PlanGUID] UNIQUEIDENTIFIER NOT NULL,
[ModelTemplateGUID] UNIQUEIDENTIFIER NOT NULL
);
-- find all templates for each plan it would fit
INSERT INTO #PossiblePlanToTemplateMap([PlanGUID], [ModelTemplateGUID], [UsageOrder])
SELECT
P.[PlanGUID],
M.[ModelTemplateGUID],
M.[UsageOrder]
FROM [dbo].[XPlan] AS P
CROSS APPLY
(
SELECT [ChildModelTemplateGUID] AS [ModelTemplateGUID], [UsageOrder] FROM [dbo].[MEScoreExpansionProfile] AS SEP WHERE SEP.[ParentModelTemplateGUID] = @templateGUID
UNION
SELECT @templateGUID AS [ModelTemplateGUID], -1 AS [UsageOrder]
) AS M
LEFT JOIN
( -- plans that don't fit in at least one of any profile's overrides
SELECT
DISTINCT
FC.[PlanGUID] AS [PlanGUID],
SEP.[ChildModelTemplateGUID] AS [ModelTemplateGUID]
FROM [dbo].[MEScoreExpansionOverride] AS OVR
INNER JOIN [dbo].[MEScoreExpansionProfile] AS SEP ON SEP.[ExpansionProfileGUID] = OVR.[ExpansionProfileGUID]
INNER JOIN
(
SELECT -- fillin counts
P.[PlanGUID],
PHS.[FriendlyName],
P.[ModelTemplateGUID],
SUM(CASE WHEN FI.[FillinGUID] IS NULL THEN 0 ELSE 1 END) AS [FillinCount]
FROM [dbo].[XPlan] AS P WITH (READUNCOMMITTED)
INNER JOIN [dbo].[MEPHSection] AS PHS WITH (READUNCOMMITTED) ON PHS.[ModelTemplateGUID] = P.[ModelTemplateGUID]
LEFT JOIN [dbo].[ScoreFillin] AS FI WITH (READUNCOMMITTED) ON FI.[ModelGUID] = P.[PlanGUID] AND FI.[PlaceholderSectionMemberGUID] = PHS.[PHSectionMemberGUID]
WHERE
((P.[ModelTemplateGUID] = @templateGUID) OR (P.[ModelTemplateGUID] IN (SELECT [ChildModelTemplateGUID] FROM [dbo].[MEScoreExpansionProfile] WHERE [ParentModelTemplateGUID] = @templateGUID)))
GROUP BY
P.[PlanGUID],
PHS.[FriendlyName],
P.[ModelTemplateGUID]
) AS FC ON OVR.[ExpansionGlobalID] = FC.[FriendlyName]
WHERE
((FC.[FillinCount] + @expansionPadding) > OVR.[CountOverride])
) AS DNF ON DNF.[PlanGUID] = P.PlanGUID AND DNF.[ModelTemplateGUID] = M.[ModelTemplateGUID]
WHERE
((P.[ModelTemplateGUID] = @templateGUID) OR (P.[ModelTemplateGUID] IN (SELECT [ChildModelTemplateGUID] FROM [dbo].[MEScoreExpansionProfile] WHERE [ParentModelTemplateGUID] = @templateGUID)))
AND (DNF.[PlanGUID] IS NULL) -- exclude invalid mapping
AND ((@planGUIDList IS NULL) OR (P.[PlanGUID] IN (SELECT [guid] FROM [dbo].ConvertCSGuidsToTable(@planGUIDList, ','))));
-- find the smallest template for each plan
INSERT INTO #NewPlanToTemplateMap([PlanGUID], [ModelTemplateGUID])
SELECT
MAP.[PlanGUID],
MAP.[ModelTemplateGUID]
FROM #PossiblePlanToTemplateMap AS MAP
INNER JOIN
(
SELECT
M.[PlanGUID],
MAX(M.[UsageOrder]) as [MaxUsageOrder]
FROM #PossiblePlanToTemplateMap AS M
GROUP BY M.[PlanGUID]
) AS MAXMAP ON MAXMAP.[PlanGUID] = MAP.[PlanGUID]
INNER JOIN [dbo].[XPlan] AS EXISTINGPLAN ON EXISTINGPLAN.[PlanGUID] = MAP.[PlanGUID]
WHERE
MAP.[UsageOrder] = MAXMAP.[MaxUsageOrder] -- the smallest profile
AND EXISTINGPLAN.[ModelTemplateGUID] <> MAP.[ModelTemplateGUID] -- exclude plans that are already in correct profile
AND ((@planGUIDList IS NULL) OR (MAP.[PlanGUID] IN (SELECT [guid] FROM [dbo].ConvertCSGuidsToTable(@planGUIDList, ','))));
IF EXISTS (SELECT TOP 1 1 FROM #NewPlanToTemplateMap)
BEGIN
-- move plans
UPDATE P
SET P.[ModelTemplateGUID] = NP.[ModelTemplateGUID]
FROM [dbo].[XPlan] AS P
INNER JOIN #NewPlanToTemplateMap AS NP ON NP.[PlanGUID] = P.[PlanGUID];
-- move workspace data
UPDATE IMPR
SET IMPR.[WorksheetGUID] = NWS.[WORKSHEETGUID]
FROM
[dbo].[MEImprovData] AS IMPR
INNER JOIN [dbo].[XPlan] AS P ON P.[PlanGUID] = IMPR.[ModelGUID]
INNER JOIN #NewPlanToTemplateMap AS NP ON NP.[PlanGUID] = P.[PlanGUID]
INNER JOIN [dbo].[EMFModelTemplateWorksheet] AS WS ON WS.WorksheetGUID = IMPR.WorksheetGUID
INNER JOIN [dbo].[EMFModelTemplateWorksheet] AS NWS ON NWS.[Name] = WS.[Name] AND NWS.[ModelTemplateGUID] = P.[ModelTemplateGUID]
WHERE
WS.[ModelTemplateGUID] <> P.[ModelTemplateGUID];
-- invalidate cache for the used plans
DECLARE @usedPlanGUIDList NVARCHAR(MAX) = NULL;
SELECT @usedPlanGUIDList = ISNULL(@usedPlanGUIDList + ',', '') + CAST([PlanGUID] AS VARCHAR(36)) FROM #NewPlanToTemplateMap
DECLARE @xplanWhereClause NVARCHAR(MAX) = 'PlanGUID in (SELECT [guid] FROM [dbo].ConvertCSGuidsToTable(''' + @usedPlanGUIDList + ''', '',''))';
EXEC [dbo].[procInvalidateModelWorkbookCacheByWhereClause] @xplanWhereClause, 0, 'procMEScoreExpansionProfileFitPlans';
END
-- cleanup
DROP TABLE #PossiblePlanToTemplateMap;
DROP TABLE #NewPlanToTemplateMap;
END
-- fix fillin templates
UPDATE X SET X.[FillinTemplateGUID] = CT.[FillinTemplateGUID] FROM [dbo].[XPlan] AS X INNER JOIN [dbo].[MEFillinTemplate] AS PT ON PT.[FillinTemplateGUID] = X.[FillinTemplateGUID] INNER JOIN [dbo].[MEFillinTemplate] AS CT ON CT.[ModelTemplateGUID] = X.[ModelTemplateGUID] AND CT.[ModelTemplateGUID] != PT.[ModelTemplateGUID] AND CT.[Name] = PT.[Name];
UPDATE X SET X.[FillinTemplateGUID] = [dbo].ZeroGUID() FROM [dbo].[XPlan] AS X WHERE NOT EXISTS(SELECT 1 FROM [dbo].[MEFillinTemplate] AS FI WHERE FI.[FillinTemplateGUID] = X.[FillinTemplateGUID] AND FI.[ModelTemplateGUID] = X.[ModelTemplateGUID]);
UPDATE X SET X.[FillinTemplateGUID] = FI.[FillinTemplateGUID] FROM [dbo].[XPlan] AS X INNER JOIN [dbo].[MEFillinTemplate] AS FI ON FI.[ModelTemplateGUID] = X.[ModelTemplateGUID] AND FI.[IsDefault] = 1 WHERE X.[FillinTemplateGUID] = [dbo].ZeroGUID();
RETURN
GO
---------------------------------------------
-- dbo.procMEScoreExpansionProfileRecommend
CREATE PROC [dbo].[procMEScoreExpansionProfileRecommend]
@templateGUID UNIQUEIDENTIFIER
AS
SET NOCOUNT ON;
IF EXISTS (SELECT TOP 1 1 FROM [dbo].[MEScoreExpansionProfile] WHERE [ChildModelTemplateGUID] = @templateGUID)
BEGIN
-- we are in the child template, switch to main template
SELECT TOP 1 @templateGUID = [ParentModelTemplateGUID] FROM [dbo].[MEScoreExpansionProfile] WHERE [ChildModelTemplateGUID] = @templateGUID;
END
DECLARE @newProfileWasCreated BIT = 0;
CREATE TABLE #newScoreExpansionOverrides (
[ExpansionGlobalID] NVARCHAR(100) NOT NULL,
[CountOverride] INT NOT NULL
);
-- find outlier sections and create overrides
INSERT INTO #newScoreExpansionOverrides ([ExpansionGlobalID], [CountOverride])
SELECT
DISTINCT
RMC.[SectionName] AS [ExpansionGlobalID],
RMC.[RecommendedMaxCount] AS [CountOverride]
FROM [dbo].[TemplateSettings] AS TS
INNER JOIN [dbo].[MEScoreExpansionRecommendedMaxCount] AS RMC
ON RMC.[SectionName] = SUBSTRING(TS.[SettingID], 18, LEN(TS.[SettingID]))
WHERE 1=1
AND TS.[TemplateGUID] = @templateGUID
AND TS.[SettingID] LIKE 'Section Counts%'
AND RMC.[RecommendedMaxCount] < COALESCE(TS.[Value], 0);
-- outlier profile must have flag IsOutlier and be the first profile
DECLARE @outlierProfileGUID UNIQUEIDENTIFIER = (SELECT TOP 1 [ExpansionProfileGUID] FROM [dbo].[MEScoreExpansionProfile] WHERE ([ParentModelTemplateGUID] = @templateGUID) AND ([IsOutlier] = 1) AND ([UsageOrder] = 0));
DECLARE @removeExistingProfiles BIT = 0;
-- remove all existing profiles if
-- outlier profile does not exist and there are overrides
-- outlier profile exists and there no overrides
IF (@outlierProfileGUID IS NULL AND EXISTS(SELECT TOP 1 1 FROM #newScoreExpansionOverrides))
OR (@outlierProfileGUID IS NOT NULL AND NOT EXISTS(SELECT TOP 1 1 FROM #newScoreExpansionOverrides))
BEGIN
SET @removeExistingProfiles = 1;
END
IF (@removeExistingProfiles = 1)
BEGIN
-- remove all existing profiles
-- there won't be more than 2-3 profiles
DECLARE profilesToRemoveCursor CURSOR FAST_FORWARD FOR
SELECT [ExpansionProfileGUID], [ChildModelTemplateGUID]
FROM [dbo].[MEScoreExpansionProfile] WITH (READUNCOMMITTED)
WHERE [ParentModelTemplateGUID] = @templateGUID
ORDER BY [UsageOrder] DESC;
DECLARE @currentProfileGUID UNIQUEIDENTIFIER, @currentChildMTGUID UNIQUEIDENTIFIER;
OPEN profilesToRemoveCursor;
FETCH NEXT FROM profilesToRemoveCursor INTO @currentProfileGUID, @currentChildMTGUID;
WHILE(@@FETCH_STATUS = 0)
BEGIN
-- move workspace data to Parent template (must be done before removing model template)
UPDATE IMPR
SET IMPR.[WorksheetGUID] = NWS.[WORKSHEETGUID]
FROM [dbo].[MEImprovData] AS IMPR
INNER JOIN [dbo].[EMFModelTemplateWorksheet] AS WS
ON WS.[WorksheetGUID] = IMPR.[WorksheetGUID] AND WS.[ModelTemplateGUID] = @currentChildMTGUID
INNER JOIN [dbo].[EMFModelTemplateWorksheet] AS NWS
ON NWS.[Name] = WS.[Name] AND NWS.[ModelTemplateGUID] = @templateGUID;
-- delete model template
EXEC [dbo].[procEMFRemoveTemplateMappings] @currentChildMTGUID, 0;
DELETE FROM [dbo].[PlanTypeModelTemplateLink] WHERE [ModelTemplateGUID] = @currentChildMTGUID;
DELETE FROM [dbo].[EMFModelTemplate] WHERE [ModelTemplateGUID] = @currentChildMTGUID;
DELETE FROM [dbo].[DataPathFile_ModelTemplate] WHERE [FullPath] LIKE ('%' + CAST(@currentChildMTGUID AS NVARCHAR(36)) + '%');
-- delete expansion profile and overrides
DELETE FROM [dbo].[MEScoreExpansionOverride] WHERE [ExpansionProfileGUID] = @currentProfileGUID;
DELETE FROM [dbo].[MEScoreExpansionProfile] WHERE [ExpansionProfileGUID] = @currentProfileGUID;
-- move all plans to Parent template
UPDATE [dbo].[XPlan] SET [ModelTemplateGUID] = @templateGUID WHERE [ModelTemplateGUID] = @currentChildMTGUID;
FETCH NEXT FROM profilesToRemoveCursor INTO @currentProfileGUID, @currentChildMTGUID;
END
CLOSE profilesToRemoveCursor;
DEALLOCATE profilesToRemoveCursor;
END
-- create outlier profile
IF EXISTS(SELECT TOP 1 1 FROM #newScoreExpansionOverrides)
BEGIN
IF (@outlierProfileGUID IS NOT NULL) -- there is existing outlier profile: update existing overrides
BEGIN
-- remove existing overrides
DELETE FROM [dbo].[MEScoreExpansionOverride] WHERE [ExpansionProfileGUID] = @outlierProfileGUID;
-- add new overrides
INSERT INTO [dbo].[MEScoreExpansionOverride] ([ExpansionProfileGUID], [ExpansionGlobalID], [CountOverride])
SELECT @outlierProfileGUID, [ExpansionGlobalID], [CountOverride] FROM #newScoreExpansionOverrides;
-- move all plans to Parent template
DECLARE @childMTGUID UNIQUEIDENTIFIER = (SELECT TOP 1 [ChildModelTemplateGUID] FROM [dbo].[MEScoreExpansionProfile] WHERE [ExpansionProfileGUID] = @outlierProfileGUID)
UPDATE [dbo].[XPlan] SET [ModelTemplateGUID] = @templateGUID WHERE [ModelTemplateGUID] = @childMTGUID;
PRINT 'Outlier profile updated!';
END
ELSE
BEGIN
-- create new outlier profile
SET @outlierProfileGUID = NEWID();
-- outlier profile is always Profile 1
INSERT INTO [dbo].[MEScoreExpansionProfile] ([ExpansionProfileGUID], [ParentModelTemplateGUID], [Name], [UsageOrder], [IsOutlier])
SELECT @outlierProfileGUID, @templateGUID, 'Profile 1', 0, 1;
-- add overrides for outlier profile
INSERT INTO [dbo].[MEScoreExpansionOverride] ([ExpansionProfileGUID], [ExpansionGlobalID], [CountOverride])
SELECT @outlierProfileGUID, [ExpansionGlobalID], [CountOverride] FROM #newScoreExpansionOverrides;
SET @newProfileWasCreated = 1;
PRINT 'Outlier profile created!';
END
END
-- disable/enable NM for parent template
DECLARE @isNativeModelingEnabled BIT = (SELECT TOP 1 [Value] FROM [ob].[SystemSetting] WHERE [Name] = 'Native Modeling Enabled')
IF (@isNativeModelingEnabled = 1)
BEGIN
IF (((SELECT TOP 1 [ExpansionProfileGUID] FROM [dbo].[MEScoreExpansionProfile] WHERE ([ParentModelTemplateGUID] = @templateGUID) AND ([IsOutlier] = 1) AND ([UsageOrder] = 0)) IS NULL) OR exists(select 1 from [ob].[SystemSetting] where [Name] = 'Native Modeling Limits Enabled' and [Value] = '0'))
BEGIN
UPDATE [dbo].[EMFModelTemplate] SET [IsModelWorkbookCachable] = 1, [IsMemoryCachable] = 1 WHERE [ModelTemplateGUID] = @templateGUID;
END
ELSE
BEGIN
EXEC [dbo].[procInvalidateModelWorkbookCache] @templateGUID, 1, 0, 'procMENativeModelingDisable';
UPDATE [dbo].[EMFModelTemplate] SET [IsModelWorkbookCachable] = 0, [IsMemoryCachable] = 0 WHERE [ModelTemplateGUID] = @templateGUID;
END
END
-- create normal profile if needed
-- clear temp table
DELETE FROM #newScoreExpansionOverrides;
-- find overrides for new profile
INSERT INTO #newScoreExpansionOverrides ([ExpansionGlobalID], [CountOverride])
SELECT
DISTINCT
[ExpansionGlobalID],
[CountOverride]
FROM
[dbo].[viewMEPHSectionAnalysisRecommendation]
WHERE
ModelTemplateGUID = @templateGUID;
-- create profile
IF EXISTS(SELECT TOP 1 1 FROM #newScoreExpansionOverrides)
BEGIN
DECLARE @newProfileGUID UNIQUEIDENTIFIER = NEWID();
DECLARE @newProfileUsageOrder INT = (SELECT COUNT(*) FROM [dbo].[MEScoreExpansionProfile] WHERE [ParentModelTemplateGUID] = @templateGUID);
-- create profile
INSERT INTO [dbo].[MEScoreExpansionProfile] ([ExpansionProfileGUID], [ParentModelTemplateGUID], [Name], [UsageOrder], [IsOutlier])
SELECT @newProfileGUID, @templateGUID, 'Profile ' + CAST((@newProfileUsageOrder + 1) AS NVARCHAR(2)), @newProfileUsageOrder, 0;
-- create overrides
INSERT INTO [dbo].[MEScoreExpansionOverride] ([ExpansionProfileGUID], [ExpansionGlobalID], [CountOverride])
SELECT @newProfileGUID, [ExpansionGlobalID], [CountOverride] FROM #newScoreExpansionOverrides;
SET @newProfileWasCreated = 1;
PRINT 'New profile created!';
END
-- drop temp table
DROP TABLE #newScoreExpansionOverrides;
-- sync templates
IF (@newProfileWasCreated = 1)
BEGIN
-- build out the new template for this profile so we can apply plans to it
EXEC [dbo].[procMEScoreExpansionProfileSyncTemplates] @templateGUID, 0, 0;
END
GO
---------------------------------------------
-- dbo.procMEScoreExpansionProfileSyncTemplates
CREATE proc [dbo].[procMEScoreExpansionProfileSyncTemplates]
@parentMTGUID uniqueidentifier,
@isPreservingChildMappings bit = 1,
@isPreservingNavSections bit = 1
as
set nocount on
declare @profileGUID uniqueidentifier
declare @childMTGUID uniqueidentifier
declare @nativeModelingEnabled bit = (select top 1 [Value] from [ob].[SystemSetting] where Name = 'Native Modeling Enabled')
declare crsProfiles cursor fast_forward for select ExpansionProfileGUID, ChildModelTemplateGUID from [dbo].[MEScoreExpansionProfile] where ParentModelTemplateGUID = @parentMTGUID order by UsageOrder
open crsProfiles
fetch next from crsProfiles into @profileGUID, @childMTGUID
while(@@fetch_status = 0) begin
if (@childMTGUID = dbo.ZeroGUID()) begin
if (@isPreservingChildMappings = 1) begin
--template files incorrectly won't get created in this case, so skip
print 'Invalid parameter value: isPreservingChildMappings'
return
end
--child template missing, add new
select @childMTGUID = newid()
update [dbo].[MEScoreExpansionProfile] set ChildModelTemplateGUID = @childMTGUID where ExpansionProfileGUID = @profileGUID
--add template
insert into [dbo].[EMFModelTemplate] ([ModelTemplateGUID], [Name], [Description], [Type], [IsPublished], [IsExpanded], [IsSafeModeOn], [DefaultFormGUID], [IsNewLabelsOnly], [IsUsingHashJoin], [IsScoreFillinAdvancedMode], [IsModelWorkbookCachable], [HasModelDependents], [IsModelRefreshOnFillinChange], [IsReadUncommittedLoad], [IsReadUncommittedSave], [IsMemoryCachable], [PublishOrder], [EditExpansionsMode], [TemplateVersion], [IsUsingOpenWorkbookFormat], [IsHidden])
select @childMTGUID, MT.Name + ' (' + EP.Name + ')', 'Expansion Profile of ' + MT.[Name], MT.[Type], MT.[IsPublished], MT.[IsExpanded], MT.[IsSafeModeOn], MT.[DefaultFormGUID], MT.[IsNewLabelsOnly], MT.[IsUsingHashJoin], MT.[IsScoreFillinAdvancedMode], @nativeModelingEnabled, MT.[HasModelDependents], MT.[IsModelRefreshOnFillinChange], MT.[IsReadUncommittedLoad], MT.[IsReadUncommittedSave], @nativeModelingEnabled, MT.[PublishOrder], MT.[EditExpansionsMode], MT.[TemplateVersion], MT.[IsUsingOpenWorkbookFormat], cast(1 as bit)
from [dbo].[EMFModelTemplate] MT inner join [dbo].[MEScoreExpansionProfile] EP on EP.ParentModelTemplateGUID = MT.ModelTemplateGUID and EP.ChildModelTemplateGUID = @childMTGUID
where ModelTemplateGUID = @parentMTGUID
--link template to plantype
insert into [dbo].[PlanTypeModelTemplateLink] (PlanTypeGUID, ModelTemplateGUID) select PlanTypeGUID, @childMTGUID from [dbo].[PlanTypeModelTemplateLink] where ModelTemplateGUID = @parentMTGUID
end else begin
--child template exists, first clear mappings
if (@isPreservingChildMappings = 0) begin
exec [dbo].[procEMFRemoveTemplateMappings] @childMTGUID, 0
end
--sync template
update CMT
set
CMT.Name = PMT.Name + ' (' + EP.Name + ')',
CMT.DefaultFormGUID = PMT.DefaultFormGUID,
CMT.IsScoreFillinAdvancedMode = PMT.IsScoreFillinAdvancedMode,
CMT.IsModelWorkbookCachable = @nativeModelingEnabled,
CMT.HasModelDependents = PMT.HasModelDependents,
CMT.IsModelRefreshOnFillinChange = PMT.IsModelRefreshOnFillinChange,
CMT.IsReadUncommittedLoad = PMT.IsReadUncommittedLoad,
CMT.IsReadUncommittedSave = PMT.IsReadUncommittedSave,
CMT.IsMemoryCachable = @nativeModelingEnabled,
CMT.EditExpansionsMode = PMT.EditExpansionsMode,
CMT.TemplateVersion = PMT.TemplateVersion,
CMT.IsUsingOpenWorkbookFormat = PMT.IsUsingOpenWorkbookFormat,
CMT.IsHidden = 1
from
[dbo].[EMFModelTemplate] CMT
inner join [dbo].[MEScoreExpansionProfile] EP on EP.ChildModelTemplateGUID = CMT.ModelTemplateGUID
inner join [dbo].[EMFModelTemplate] PMT on PMT.ModelTemplateGUID = EP.ParentModelTemplateGUID
where
CMT.ModelTemplateGUID = @childMTGUID
--remove deleted fillin templates from the child also
delete from [dbo].[MEFillinTemplate] where ModelTemplateGUID = @childMTGUID and Name not in(select pfit.Name from [dbo].[MEFillinTemplate] pfit where pfit.ModelTemplateGUID = @parentMTGUID);
--remove other info so we can re-add latest from parent
if (@isPreservingNavSections = 0) begin
delete from [dbo].[S3SimplePermission] where LootID in(select MS.ModelSectionGUID from [dbo].[ModelSection] MS inner join [dbo].[EMFModelTemplateWorksheet] WS on WS.WorksheetGUID = MS.SheetGUID where WS.ModelTemplateGUID = @childMTGUID)
delete from [dbo].[S3SimplePermission] where LootID in(select WS.WorksheetGUID from [dbo].[EMFModelTemplateWorksheet] WS where WS.ModelTemplateGUID = @childMTGUID)
delete from [dbo].[ModelSection] where SheetGUID in(select WS.WorksheetGUID from [dbo].[EMFModelTemplateWorksheet] WS where WS.ModelTemplateGUID = @childMTGUID)
end
delete from [dbo].[ModelSection] where SheetGUID not in(select WS.WorksheetGUID from [dbo].[EMFModelTemplateWorksheet] WS)
delete from [dbo].[MEPHSectionRuleValue] where PHSectionGUID in(select PHS.PHSectionGUID from [dbo].[MEPHSection] PHS where PHS.ModelTemplateGUID = @childMTGUID)
delete from [dbo].[MEPHSection] where ModelTemplateGUID = @childMTGUID
if (@isPreservingChildMappings = 0) begin
delete from [dbo].[EMFModelTemplateWorksheet] where ModelTemplateGUID = @childMTGUID;
delete from [dbo].[EMFModelTemplateLinkSource] where ModelTemplateGUID = @childMTGUID;
delete from [dbo].[DataPathFile_ModelTemplate] where CAST(FullPath as nvarchar(51)) = 'ModelTemplates\' + CAST(@childMTGUID as nvarchar(36));
end
end
if (@isPreservingChildMappings = 0) begin
--add worksheets
insert into [dbo].[EMFModelTemplateWorksheet] ([WorksheetGUID], [ModelTemplateGUID], [Name], [DesignerMetaData], [TransformStateGUID], [IsImprov], [IsHiddenOnExpand], [HiddenRows], [HiddenColumns], [IsHeadingsHiddenOnExpand], [ZoomLevel], [IsChartsEnabled], [NameSourceAddress], [DefaultCellAddress], [FreezePanesCellAddress], [IsDefaultSheet], [CounterCellAddress], [CloneCount], [IsClearingByNameCell])
select newid(), @childMTGUID, [Name], [DesignerMetaData], [TransformStateGUID], [IsImprov], [IsHiddenOnExpand], [HiddenRows], [HiddenColumns], [IsHeadingsHiddenOnExpand], [ZoomLevel], [IsChartsEnabled], [NameSourceAddress], [DefaultCellAddress], [FreezePanesCellAddress], [IsDefaultSheet], [CounterCellAddress], [CloneCount], [IsClearingByNameCell]
from [dbo].[EMFModelTemplateWorksheet]
where ModelTemplateGUID = @parentMTGUID
--duplicate improv data cannot be handled, so remove it
delete i
from
MEImprovData i
inner join ob.viewDimDepartmentalBudget b on b.MemberGUID = i.ModelGUID
inner join dbo.XPlan p on p.PlanGUID = b.MemberGUID
where
p.ModelTemplateGUID in(@childMTGUID, @parentMTGUID)
and i.ModelGUID in(select sq.modelguid from (select distinct id.modelguid, id.worksheetguid from MEImprovData id group by id.modelguid, id.worksheetguid) sq group by sq.modelguid having count(*) > 1);
--fix any remaining orphan improv data
update i set i.WorksheetGUID = ws.WorksheetGUID
from
MEImprovData i
inner join ob.viewDimDepartmentalBudget b on b.MemberGUID = i.ModelGUID
inner join dbo.XPlan p on p.PlanGUID = b.MemberGUID
inner join dbo.EMFModelTemplateWorksheet ws on ws.ModelTemplateGUID = p.ModelTemplateGUID and ws.Name = 'Workspace'
where
p.ModelTemplateGUID in(@childMTGUID, @parentMTGUID)
and i.WorksheetGUID != ws.WorksheetGUID;
--add link sources
insert into [dbo].[EMFModelTemplateLinkSource] ([LinkSourceGUID], [Name], [ModelTemplateGUID], [ParentSubtableGUID], [ParentModelDataConfigGUID], [ParentScoreCompositeTableGUID], [IsSelf])
select newid(), [Name], @childMTGUID, [ParentSubtableGUID], [ParentModelDataConfigGUID], [ParentScoreCompositeTableGUID], [IsSelf]
from [dbo].[EMFModelTemplateLinkSource]
where ModelTemplateGUID = @parentMTGUID
--add template files
insert into [dbo].[DataPathFile_ModelTemplate] ([FileGUID], [FullPath], [FileName], [CreationTime], [LastModifiedTime], [Data], [IsLocked])
select newid(), replace([FullPath], cast(@parentMTGUID as nvarchar(36)), cast(@childMTGUID as nvarchar(36))), replace([FileName], cast(@parentMTGUID as nvarchar(36)), cast(@childMTGUID as nvarchar(36))), getdate(), getdate(), [Data], 0
from [dbo].[DataPathFile_ModelTemplate]
where FullPath like 'ModelTemplates\%' and CAST(FullPath as nvarchar(51)) = 'ModelTemplates\' + CAST(@parentMTGUID as nvarchar(36))
end
--add ph sections
insert into [dbo].[MEPHSection] ([PHSectionGUID], [ModelTemplateGUID], [PHSectionDimensionGUID], [PHSectionMemberGUID], [PlanTypeGUID], [FriendlyName], [SortType], [IsConstantIndex], [RootHierarchyPath], [DefaultHierarchyPath], [IsAppend], [IsHidden], [IsReadOnly], [IsExclusive], [RuleType], [IsOneTime], [IsClearOnRefresh], [ExclusivityGroup], [IsOrderByName], [IsOrderByNameSkippingCode])
select newid(), @childMTGUID, [PHSectionDimensionGUID], [PHSectionMemberGUID], [PlanTypeGUID], [FriendlyName], [SortType], [IsConstantIndex], [RootHierarchyPath], [DefaultHierarchyPath], [IsAppend], [IsHidden], [IsReadOnly], [IsExclusive], [RuleType], [IsOneTime], [IsClearOnRefresh], [ExclusivityGroup], [IsOrderByName], [IsOrderByNameSkippingCode]
from [dbo].[MEPHSection]
where ModelTemplateGUID = @parentMTGUID
--add new fillin templates
insert into [dbo].[MEFillinTemplate] ([FillinTemplateGUID], [Name], [ModelTemplateGUID], [IsDefault])
select newid(), fit.[Name], @childMTGUID, fit.[IsDefault]
from [dbo].[MEFillinTemplate] fit
where fit.ModelTemplateGUID = @parentMTGUID
and not exists(select 1 from [dbo].[MEFillinTemplate] ex where ex.ModelTemplateGUID = @childMTGUID and ex.Name = fit.Name)
--fix fillin template on existing plans
update XP set XP.FillinTemplateGUID = dbo.ZeroGUID() from [dbo].[XPlan] XP where XP.FillinTemplateGUID != dbo.ZeroGUID() and XP.FillinTemplateGUID not in(select FT.FillinTemplateGUID from [dbo].[MEFillinTemplate] FT where FT.ModelTemplateGUID = XP.ModelTemplateGUID);
update XP set XP.FillinTemplateGUID = FT.FillinTemplateGUID from [dbo].[XPlan] XP inner join [dbo].[MEFillinTemplate] FT on FT.ModelTemplateGUID = XP.ModelTemplateGUID and FT.IsDefault = 1 where XP.FillinTemplateGUID = dbo.ZeroGUID();
--add ph section rules
insert into [dbo].[MEPHSectionRuleValue] ([PHSectionRuleValueGUID], [PHSectionGUID], [RuleValueKey], [RuleValue], [SortOrder], [FillinTemplateGUID])
select newid(), CPHS.[PHSectionGUID], RV.[RuleValueKey], RV.[RuleValue], RV.[SortOrder], isnull(CFT.[FillinTemplateGUID], dbo.ZeroGUID())
from
[dbo].[MEPHSectionRuleValue] RV
inner join [dbo].[MEPHSection] PPHS on PPHS.PHSectionGUID = RV.PHSectionGUID
inner join [dbo].[MEPHSection] CPHS on PPHS.PHSectionMemberGUID = CPHS.PHSectionMemberGUID and PPHS.IsHidden = CPHS.IsHidden and CPHS.ModelTemplateGUID = @childMTGUID
left join [dbo].[MEFillinTemplate] PFT on PFT.FillinTemplateGUID = RV.FillinTemplateGUID
left join [dbo].[MEFillinTemplate] CFT on CFT.Name = PFT.Name and CFT.ModelTemplateGUID = @childMTGUID
where PPHS.ModelTemplateGUID = @parentMTGUID
--fix ph section rule values (for rules that reference other ph sections, like union rule)
update CRV set CRV.RuleValue = cast(CPHS.PHSectionGUID as nvarchar(36))
from
[dbo].[MEPHSectionRuleValue] CRV
inner join [dbo].[MEPHSection] PPHS on cast(PPHS.PHSectionGUID as nvarchar(36)) = CRV.RuleValue and PPHS.ModelTemplateGUID = @parentMTGUID
inner join [dbo].[MEPHSection] CPHS on PPHS.PHSectionMemberGUID = CPHS.PHSectionMemberGUID and PPHS.IsHidden = CPHS.IsHidden and CPHS.ModelTemplateGUID = @childMTGUID
where
exists (select 1 from [dbo].[MEPHSection] CP where CP.PHSectionGUID = CRV.PHSectionGUID and CP.ModelTemplateGUID = @childMTGUID)
--add model sections
if ((@isPreservingNavSections = 0) or (not exists(select 1 from [dbo].[ModelSection] where SheetGUID in(select WS.WorksheetGUID from [dbo].[EMFModelTemplateWorksheet] WS where WS.ModelTemplateGUID = @childMTGUID)))) begin
insert into [dbo].[ModelSection] ([ModelSectionGUID], [Name], [Range], [Address], [SheetGUID], [ParentGUID], [SortOrder], [IsInherit], [IsHidden])
select newid(), MS.[Name], MS.[Range], MS.[Address], CWS.WorksheetGUID, MS.[ParentGUID], MS.[SortOrder], MS.[IsInherit], MS.[IsHidden]
from
[dbo].[ModelSection] MS
inner join [dbo].[EMFModelTemplateWorksheet] PWS on PWS.WorksheetGUID = MS.SheetGUID
inner join [dbo].[EMFModelTemplateWorksheet] CWS on CWS.Name = PWS.Name and CWS.ModelTemplateGUID = @childMTGUID
where PWS.ModelTemplateGUID = @parentMTGUID
--fix model section parents
update CMS set CMS.ParentGUID = CP.ModelSectionGUID
from
[dbo].[ModelSection] CMS
inner join [dbo].[EMFModelTemplateWorksheet] CWS on CWS.WorksheetGUID = CMS.SheetGUID
inner join [dbo].[ModelSection] PP on PP.ModelSectionGUID = CMS.ParentGUID
inner join [dbo].[ModelSection] CP on CP.Address = PP.Address and CP.SheetGUID = CMS.SheetGUID
where
CWS.ModelTemplateGUID = @childMTGUID;
update CMS set CMS.ParentGUID = CMS.SheetGUID
from
[dbo].[ModelSection] CMS
inner join [dbo].[EMFModelTemplateWorksheet] CWS on CWS.WorksheetGUID = CMS.SheetGUID
where
CWS.ModelTemplateGUID = @childMTGUID
and CMS.ParentGUID in(select PWS.WorksheetGUID from [dbo].[EMFModelTemplateWorksheet] PWS where PWS.ModelTemplateGUID = @parentMTGUID);
--add model section security
insert into [dbo].[S3SimplePermission] (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select CMS.ModelSectionGUID, PSP.IdentityGUID, PSP.ReadValue, PSP.WriteValue, PSP.SecureValue
from
[dbo].[ModelSection] MS
inner join [dbo].[EMFModelTemplateWorksheet] PWS on PWS.WorksheetGUID = MS.SheetGUID
inner join [dbo].[EMFModelTemplateWorksheet] CWS on CWS.Name = PWS.Name and CWS.ModelTemplateGUID = @childMTGUID
inner join [dbo].[ModelSection] CMS on CMS.Address = MS.Address and CMS.SheetGUID = CWS.WorksheetGUID
inner join [dbo].[S3SimplePermission] PSP on PSP.LootID = MS.ModelSectionGUID
where PWS.ModelTemplateGUID = @parentMTGUID
--add model sheet security
insert into [dbo].[S3SimplePermission] (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select CWS.WorksheetGUID, PSP.IdentityGUID, PSP.ReadValue, PSP.WriteValue, PSP.SecureValue
from
[dbo].[EMFModelTemplateWorksheet] PWS
inner join [dbo].[EMFModelTemplateWorksheet] CWS on CWS.Name = PWS.Name and CWS.ModelTemplateGUID = @childMTGUID
inner join [dbo].[S3SimplePermission] PSP on PSP.LootID = PWS.WorksheetGUID
where PWS.ModelTemplateGUID = @parentMTGUID
end
fetch next from crsProfiles into @profileGUID, @childMTGUID
end
close crsProfiles
deallocate crsProfiles
declare @higuid uniqueidentifier
exec procLogScript 'Sync Expansion Profiles' , @higuid output
GO
---------------------------------------------
-- dbo.procMEScoreExpansionProfileSyncTemplatesAll
CREATE proc dbo.procMEScoreExpansionProfileSyncTemplatesAll
@isPreservingChildMappings bit = 1,
@isPreservingNavSections bit = 1
as
declare @mtGUID uniqueidentifier
declare crsTemplates cursor fast_forward for select distinct ParentModelTemplateGUID from [dbo].[MEScoreExpansionProfile]
open crsTemplates
fetch next from crsTemplates into @mtGUID
while(@@fetch_status = 0) begin
exec [dbo].[procMEScoreExpansionProfileSyncTemplates] @mtGUID, @isPreservingChildMappings, @isPreservingNavSections
fetch next from crsTemplates into @mtGUID
end
close crsTemplates
deallocate crsTemplates
GO
---------------------------------------------
-- dbo.procMigrateScriptGet
CREATE proc [dbo].[procMigrateScriptGet]
@schema nvarchar(8),
@sourcedb nvarchar(100)
as
declare @tableName nvarchar(100)
declare crsTables cursor for select name from sys.tables where schema_id in(select schema_id from sys.schemas where name = @schema)
open crsTables
fetch next from crsTables into @tableName
declare @migratesql nvarchar(max)
while(@@FETCH_STATUS = 0) begin
exec procMigrateScriptGetByTable @schema, @sourcedb, @tableName
fetch next from crsTables into @tableName
end
close crsTables
deallocate crsTables
GO
---------------------------------------------
-- dbo.procMigrateScriptGetByDimension
create proc [dbo].[procMigrateScriptGetByDimension]
@schema nvarchar(16),
@sourcedb nvarchar(100),
@tableName nvarchar(100),
@whereClause nvarchar(4000) = '',
@isExecuting bit = 0
as
if((select count(*) from sys.tables where name = @tableName and schema_id in(select schema_id from sys.schemas where name = @schema)) = 0) begin
RAISERROR ('Destination table not found.', 18, 0)
return
end
declare @tableId int
select @tableId = object_id from sys.tables where name = @tableName and schema_id in(select schema_id from sys.schemas where name = @schema)
declare @migratesql nvarchar(max)
set @migratesql = ''
declare @identName nvarchar(100)
select @identName = name from sys.identity_columns where object_id = @tableId
declare @columnName nvarchar(100)
set @migratesql = @migratesql + 'insert into [' + @schema + '].[' + @tableName + '] (MemberGUID,'
declare crsColumns1 cursor for select name from sys.columns where object_id = @tableId and system_type_id != 189 and is_computed = 0 and name != @identName and name != 'MemberGUID'
open crsColumns1
fetch next from crsColumns1 into @columnName
while(@@FETCH_STATUS = 0) begin
set @migratesql = @migratesql + '[' + @columnName + '],'
fetch next from crsColumns1 into @columnName
end
close crsColumns1
deallocate crsColumns1
set @migratesql = LEFT(@migratesql, len(@migratesql) - 1) + ')
select (case when MemberGUID in(select ex.MemberGUID from [' + @schema + '].[' + @tableName + '] ex) then newid() else MemberGUID end) as MemberGUID, '
declare crsColumns2 cursor for select name from sys.columns where object_id = @tableId and system_type_id != 189 and is_computed = 0 and name != @identName and name != 'MemberGUID'
open crsColumns2
fetch next from crsColumns2 into @columnName
while(@@FETCH_STATUS = 0) begin
set @migratesql = @migratesql + '[' + @columnName + '],'
fetch next from crsColumns2 into @columnName
end
close crsColumns2
deallocate crsColumns2
set @migratesql = LEFT(@migratesql, len(@migratesql) - 1) + '
from ' + @sourcedb + '.[' + @schema + '].['
set @migratesql = @migratesql + @tableName + ']
'
--prevent dupes
if(@migratesql not like '%where %') begin
set @migratesql = @migratesql + 'where '
end else begin
set @migratesql = @migratesql + ' and '
end
set @migratesql = @migratesql + 'Name not in(select Name from [' + @schema + '].[' + @tableName + '])'
--add optional where clause
if(@whereClause != '') begin
if(@migratesql not like '%where %') begin
set @migratesql = @migratesql + 'where '
end else begin
set @migratesql = @migratesql + ' and '
end
set @migratesql = @migratesql + @whereClause + '
'
end else begin
set @migratesql = @migratesql + '
'
end
set @migratesql = @migratesql + '
'
if(@isExecuting = 1) begin
exec(@migratesql)
end else begin
print @migratesql
end
GO
---------------------------------------------
-- dbo.procMigrateScriptGetByTable
CREATE proc [dbo].[procMigrateScriptGetByTable]
@schema nvarchar(16),
@sourcedb nvarchar(100),
@tableName nvarchar(100),
@whereClause nvarchar(4000) = '',
@isExecuting bit = 0,
@isFromView bit = 0,
@isTestingIndexes bit = 1,
@isTestingPrimaryKeys bit = 1
as
if((select count(*) from sys.tables where name = @tableName and schema_id in(select schema_id from sys.schemas where name = @schema)) = 0) begin
RAISERROR ('Destination table not found.', 18, 0)
return
end
declare @tableId int
select @tableId = object_id from sys.tables where name = @tableName and schema_id in(select schema_id from sys.schemas where name = @schema)
declare @migratesql nvarchar(max)
set @migratesql = ''
declare @columnName nvarchar(100)
--identity insert on if contains identity column
if((select COUNT(*) from sys.identity_columns where object_id = @tableId) > 0) begin
set @migratesql = @migratesql + 'set identity_insert [' + @schema + '].[' + @tableName + '] on
'
end
--truncate fact tables
if(left(@tableName, 4) = 'Fact') begin
set @migratesql = @migratesql + 'truncate table [' + @schema + '].[' + @tableName + ']
'
end
set @migratesql = @migratesql + 'insert into [' + @schema + '].[' + @tableName + '] ('
declare crsColumns1 cursor for select name from sys.columns where object_id = @tableId and system_type_id != 189 and is_computed = 0
open crsColumns1
fetch next from crsColumns1 into @columnName
while(@@FETCH_STATUS = 0) begin
set @migratesql = @migratesql + '[' + @columnName + '],'
fetch next from crsColumns1 into @columnName
end
close crsColumns1
deallocate crsColumns1
set @migratesql = LEFT(@migratesql, len(@migratesql) - 1) + ')
select '
declare crsColumns2 cursor for select name from sys.columns where object_id = @tableId and system_type_id != 189 and is_computed = 0
open crsColumns2
fetch next from crsColumns2 into @columnName
while(@@FETCH_STATUS = 0) begin
set @migratesql = @migratesql + '[' + @columnName + '],'
fetch next from crsColumns2 into @columnName
end
close crsColumns2
deallocate crsColumns2
set @migratesql = LEFT(@migratesql, len(@migratesql) - 1) + '
from ' + @sourcedb + '.[' + @schema + '].['
if(@isFromView = 1) begin
set @migratesql = @migratesql + 'view'
end
set @migratesql = @migratesql + @tableName + ']
'
--prevent dupes
declare @keyname nvarchar(64)
declare crsUniqueKeys cursor for
select
c.name
from
sys.columns c
inner join sys.index_columns ic on ic.object_id = c.object_id and ic.column_id = c.column_id
inner join sys.indexes i on i.index_id = ic.index_id and i.object_id = ic.object_id
inner join sys.key_constraints kc on kc.name = i.name
inner join sys.tables t on t.object_id = kc.parent_object_id
where
i.is_unique = 1
and ((i.name like 'PK_%' and @isTestingPrimaryKeys = 1) or @isTestingIndexes = 1)
and t.object_id = @tableId
open crsUniqueKeys
fetch next from crsUniqueKeys into @keyname
while(@@FETCH_STATUS = 0) begin
if(@migratesql not like '%where %') begin
set @migratesql = @migratesql + 'where '
end else begin
set @migratesql = @migratesql + ' and '
end
set @migratesql = @migratesql + @keyname + ' not in(select ' + @keyname + ' from [' + @schema + '].[' + @tableName + '])'
fetch next from crsUniqueKeys into @keyname
end
close crsUniqueKeys
deallocate crsUniqueKeys
--add optional where clause
if(@whereClause != '') begin
if(@migratesql not like '%where %') begin
set @migratesql = @migratesql + 'where '
end else begin
set @migratesql = @migratesql + ' and '
end
set @migratesql = @migratesql + @whereClause + '
'
end else begin
set @migratesql = @migratesql + '
'
end
--identity insert off
if((select COUNT(*) from sys.identity_columns where object_id = @tableId) > 0) begin
set @migratesql = @migratesql + 'set identity_insert [' + @schema + '].[' + @tableName + '] off
'
end
set @migratesql = @migratesql + '
'
if(@isExecuting = 1) begin
exec(@migratesql)
end else begin
print @migratesql
end
GO
---------------------------------------------
-- dbo.procMigrateScriptGetByTableComparison
CREATE proc [dbo].[procMigrateScriptGetByTableComparison]
@schema nvarchar(16),
@sourcedb nvarchar(100),
@tableName nvarchar(100),
@whereClause nvarchar(4000) = '',
@isExecuting bit = 0,
@isFromView bit = 0,
@isTestingIndexes bit = 1,
@isTestingPrimaryKeys bit = 1
as
-------------------------
--Post Comparison of table copies across DBs
--Output: Target Count to bring over, Table, Resulting Count
--see [dbo].[procSyncEMFDimensionWithScore] for messaging stuff
-------------------------
declare @sourcecomparesql nvarchar(max)
set @sourcecomparesql = ''
if(@isFromView = 1) begin
set @sourcecomparesql = @sourcecomparesql + 'select count(*) as srccount from ' + @sourcedb + '.[' + @schema + '].[view' + @tablename + ']'
end else begin
set @sourcecomparesql = @sourcecomparesql + 'select count(*) as srccount from ' + @sourcedb + '.[' + @schema + '].[' + @tablename + ']'
end
--declare @targetcomparesql nvarchar(max)
--set @targetcomparesql = ''
-- if(@isFromView = 1) begin
-- set @targetcomparesql = @targetcomparesql + 'select count(*) as tgtcount from [' + @@servername + '].[' + DB_NAME() + '].[' + @schema + '].[view' + @tablename + ']'
-- end else begin
-- set @targetcomparesql = @targetcomparesql + 'select count(*) as tgtcount from [' + @@servername + '].[' + DB_NAME() + '].[' + @schema + '].[' + @tablename + ']'
-- end
declare @targetcomparesql nvarchar(max)
set @targetcomparesql = ''
if(@isFromView = 1) begin
set @targetcomparesql = @targetcomparesql + 'select count(*) as tgtcount from [' + @schema + '].[view' + @tablename + ']'
end else begin
set @targetcomparesql = @targetcomparesql + 'select count(*) as tgtcount from [' + @schema + '].[' + @tablename + ']'
end
----Handle Blank Where Clause - sourcesql
if(@whereClause != '') begin
set @sourcecomparesql = @sourcecomparesql + ' where ' + @whereclause
end else begin
set @sourcecomparesql = @sourcecomparesql
end
----Handle Blank Where Clause - targetsql
if(@whereClause != '') begin
set @targetcomparesql = @targetcomparesql + ' where ' + @whereclause
end else begin
set @targetcomparesql = @targetcomparesql
end
declare @comparisonsql nvarchar(max)
set @comparisonsql = ''
set @comparisonsql = 'select tgtcount - srccount from ('
+ @sourcecomparesql + ') src left join (' + @targetcomparesql + ') tgt on 1 = 1'
--print @sourcecomparesql
--print @targetcomparesql
--print @comparisonsql
if(@isExecuting = 1) begin
exec(@comparisonsql)
end else begin
select @sourcecomparesql = REPLACE(@sourcecomparesql, 'count(*) as srccount', '*')
select @targetcomparesql = REPLACE(@targetcomparesql, 'count(*) as tgtcount', '*')
print @comparisonsql
print @sourcecomparesql
print @targetcomparesql
end
GO
---------------------------------------------
-- dbo.procMigrateScriptUpdateAttributeGUID
CREATE proc [dbo].[procMigrateScriptUpdateAttributeGUID]
@sourcedb nvarchar(500),
@attributeGuidNew uniqueidentifier,
@attributeGuidOld uniqueidentifier
as
DECLARE @resultTable table(Query nvarchar(max))
DECLARE @migratesqlDropFK table(query nvarchar(max))
DECLARE @migratesqlCreateFK table(query nvarchar(max))
DECLARE @migratesqlCreateFKTable table(query nvarchar(max))
DECLARE @fKName nvarchar(400), @tableName nvarchar(200), @colName nvarchar(200), @schemaName nvarchar(10);
DECLARE fkCursor CURSOR FOR
SELECT
fk.name As FKName,
tp.name As ParentTable,
cp.name As ParentColumn,
s.name As SchemaName
FROM
sys.foreign_keys fk
INNER JOIN
sys.tables tp ON fk.parent_object_id = tp.object_id
INNER JOIN
sys.tables tr ON fk.referenced_object_id = tr.object_id
INNER JOIN
sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN
sys.columns cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN
sys.columns cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id
INNER JOIN
sys.schemas s on s.schema_id=tp.schema_id
where tr.name='ScoreAttribute' and cr.name = 'AttributeGUID'
ORDER BY
tp.name, cp.column_id
OPEN fkCursor
FETCH NEXT FROM fkCursor
INTO @fKName, @tableName, @colName, @schemaName
WHILE (@@FETCH_STATUS = 0)
BEGIN
INSERT INTO @migratesqlCreateFK
SELECT ' ALTER TABLE ' + '[' + @schemaName + '].[' + @tableName + '] ' +
'ADD CONSTRAINT '+ @fKName + ' FOREIGN KEY (' + @colName + ') '
+ 'REFERENCES ' + '[dbo].[ScoreAttribute](AttributeGUID)'
INSERT INTO @migratesqlDropFK
SELECT ' ALTER TABLE ' + '[' + @schemaName + '].[' + @tableName + '] ' +
'DROP CONSTRAINT '+ @fKName
INSERT INTO @migratesqlCreateFKTable
SELECT ' UPDATE ' + '[' + @schemaName + '].[' + @tableName + '] SET ' + @colName + ' = ''' + convert(varchar(38), @attributeGuidNew) +
''' WHERE ' + @colName + ' = ''' +convert(varchar(38), @attributeGuidOld) + ''''
FETCH NEXT FROM fkCursor
INTO @fKName, @tableName, @colName, @schemaName
END
CLOSE fkCursor
DEALLOCATE fkCursor
INSERT INTO @resultTable
SELECT * FROM @migratesqlDropFK
INSERT INTO @resultTable
SELECT ' UPDATE ' + '[dbo].[ScoreAttribute] SET AttributeGUID=''' + convert(nvarchar(38), @attributeGuidNew) +
''' WHERE AttributeGUID=''' + convert(nvarchar(38), @attributeGuidOld) + ''''
INSERT INTO @resultTable
SELECT ' UPDATE ' + '[dbo].[ScoreDimension] SET DefaultKeyGUID=''' + convert(nvarchar(38), @attributeGuidNew) +
''' WHERE DefaultKeyGUID=''' + convert(nvarchar(38), @attributeGuidOld) + ''''
INSERT INTO @resultTable
SELECT ' UPDATE ' + '[dbo].[ScoreDimension] SET DefaultLookupKeyGUID=''' + convert(nvarchar(38), @attributeGuidNew) +
''' WHERE DefaultLookupKeyGUID=''' + convert(nvarchar(38), @attributeGuidOld) + ''''
INSERT INTO @resultTable
SELECT ' UPDATE ' + '[dbo].[ScoreAttribute] SET InferredSourceGUID=''' + convert(nvarchar(38), @attributeGuidNew) +
''' WHERE InferredSourceGUID=''' + convert(nvarchar(38), @attributeGuidOld) + ''''
INSERT INTO @resultTable
SELECT ' UPDATE ' + '[dbo].[ScoreAttribute] SET InferredAttributeGuid=''' + convert(nvarchar(38), @attributeGuidNew) +
''' WHERE InferredAttributeGuid=''' + convert(nvarchar(38), @attributeGuidOld) + ''''
INSERT INTO @resultTable
SELECT ' UPDATE [dbo].[IntDataInterfaceField] SET ScoreKeyGUID=''' + convert(nvarchar(38), @attributeGuidNew) +
''' WHERE ScoreKeyGUID=''' + convert(nvarchar(38), @attributeGuidOld) + ''''
INSERT INTO @resultTable
SELECT * FROM @migratesqlCreateFKTable
DECLARE tablesCursor CURSOR FOR
SELECT c.name AS ColName, t.name AS TableName, s.name AS SchemaName
FROM sys.columns c
INNER JOIN
sys.tables t ON c.object_id = t.object_id
INNER JOIN
sys.schemas s on s.schema_id=t.schema_id
WHERE (c.name LIKE '%AttributeGUID' or c.name LIKE '%AttributeID')
and t.Name <> 'ScoreAttribute'
and c.Name <> 'ClientReportSectionAttributeGUID' and c.Name <> 'RuleEngineFilterAttributeGUID' and c.Name <> 'ScheduleIncludedAttributeGUID'
and s.name<>'bak' and s.name<>'data'
order by c.name
OPEN tablesCursor
FETCH NEXT FROM tablesCursor
INTO @colName, @tableName, @schemaName
WHILE (@@FETCH_STATUS = 0)
BEGIN
INSERT INTO @resultTable
SELECT ' UPDATE ' + '[' + @schemaName + '].[' + @tableName + '] SET ' + @colName + ' = ''' + convert(varchar(38), @attributeGuidNew) +
''' WHERE ' + @colName + ' = ''' +convert(varchar(38), @attributeGuidOld) + ''''
FETCH NEXT FROM tablesCursor
INTO @colName, @tableName, @schemaName
END
CLOSE tablesCursor
DEALLOCATE tablesCursor
INSERT INTO @resultTable
SELECT * FROM @migratesqlCreateFK
SELECT * FROM @resultTable
GO
---------------------------------------------
-- dbo.procMigrateScriptUpdateDimensionGUID
CREATE proc [dbo].[procMigrateScriptUpdateDimensionGUID]
@sourcedb nvarchar(500),
@dimensionGuidNew uniqueidentifier,
@dimensionGuidOld uniqueidentifier
as
DECLARE @resultTable table(Query nvarchar(max))
DECLARE @migratesqlDropFK table(query nvarchar(max))
DECLARE @migratesqlCreateFK table(query nvarchar(max))
DECLARE @fKName nvarchar(400), @tableName nvarchar(200), @colName nvarchar(200), @schemaName nvarchar(10);
DECLARE fkCursor CURSOR FOR
SELECT
fk.name As FKName,
tp.name As ParentTable,
cp.name As ParentColumn,
s.name As SchemaName
FROM
sys.foreign_keys fk
INNER JOIN
sys.tables tp ON fk.parent_object_id = tp.object_id
INNER JOIN
sys.tables tr ON fk.referenced_object_id = tr.object_id
INNER JOIN
sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN
sys.columns cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN
sys.columns cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id
INNER JOIN
sys.schemas s on s.schema_id=tp.schema_id
where tr.name='ScoreDimension' and cr.name = 'DimensionGUID'
ORDER BY
tp.name, cp.column_id
OPEN fkCursor
FETCH NEXT FROM fkCursor
INTO @fKName, @tableName, @colName, @schemaName
WHILE (@@FETCH_STATUS = 0)
BEGIN
INSERT INTO @migratesqlCreateFK
SELECT ' ALTER TABLE ' + '[' + @schemaName + '].[' + @tableName + '] ' +
'ADD CONSTRAINT '+ @fKName + ' FOREIGN KEY (' + @colName + ') '
+ 'REFERENCES ' + '[dbo].[ScoreDimension](DimensionGUID)'
INSERT INTO @migratesqlDropFK
SELECT ' ALTER TABLE ' + '[' + @schemaName + '].[' + @tableName + '] ' +
'DROP CONSTRAINT '+ @fKName
FETCH NEXT FROM fkCursor
INTO @fKName, @tableName, @colName, @schemaName
END
CLOSE fkCursor
DEALLOCATE fkCursor
INSERT INTO @resultTable
SELECT * FROM @migratesqlDropFK
INSERT INTO @resultTable
SELECT ' UPDATE ' + '[dbo].[ScoreDimension] SET DimensionGUID=''' + convert(nvarchar(38), @dimensionGuidNew) +
''' WHERE DimensionGUID=''' + convert(nvarchar(38), @dimensionGuidOld) + ''''
INSERT INTO @resultTable
SELECT ' UPDATE ' + '[dbo].[S3SimplePermission] SET LootID=''' + convert(nvarchar(38), @dimensionGuidNew) +
''' WHERE LootID=''' + convert(nvarchar(38), @dimensionGuidOld) + ''''
DECLARE tablesCursor CURSOR FOR
SELECT c.name AS ColName, t.name AS TableName, s.name AS SchemaName
FROM sys.columns c
INNER JOIN
sys.tables t ON c.object_id = t.object_id
INNER JOIN
sys.schemas s on s.schema_id=t.schema_id
WHERE (c.name LIKE '%DimensionGUID' or c.name LIKE '%DimensionID')
and t.Name<>'AMMultiEditGroup' and t.name<>'ScoreDimension' and t.Name<>'DimensionInfo' and not t.Name like ('EMF%')
and c.name<>'FWDimensionGUID' and c.name<>'RegisteredDimensionGUID' and c.name<>'PlaceholderDimensionGUID' and c.name<>'PoolDimensionGUID'
and s.name<>'bak' and s.name<>'data'
order by c.name
OPEN tablesCursor
FETCH NEXT FROM tablesCursor
INTO @colName, @tableName, @schemaName
WHILE (@@FETCH_STATUS = 0)
BEGIN
INSERT INTO @resultTable
SELECT ' UPDATE ' + '[' + @schemaName + '].[' + @tableName + '] SET ' + @colName + ' = ''' + convert(varchar(38), @dimensionGuidNew) +
''' WHERE ' + @colName + ' = ''' +convert(varchar(38), @dimensionGuidOld) + ''''
FETCH NEXT FROM tablesCursor
INTO @colName, @tableName, @schemaName
END
CLOSE tablesCursor
DEALLOCATE tablesCursor
INSERT INTO @resultTable
SELECT * FROM @migratesqlCreateFK
SELECT * FROM @resultTable
GO
---------------------------------------------
-- dbo.procModelDataConfigReindex
CREATE proc [dbo].[procModelDataConfigReindex]
@mdcguid uniqueidentifier
as
/*
declare @guid uniqueidentifier
set @guid = newid()
exec procModelDataConfigReindex @guid
*/
declare @sql varchar(max)
set @sql = '
DBCC DBREINDEX (''' + dbo.GetZZModelTemplateMappingTableName(@mdcguid) + ''', '' '', 80)
DBCC DBREINDEX (''' + dbo.GetZZModelDataTableName(@mdcguid) + ''', '' '', 80)
'
print @sql
exec(@sql)
GO
---------------------------------------------
-- dbo.procModelSectionChildSecurityRefresh
CREATE PROCEDURE [dbo].[procModelSectionChildSecurityRefresh]
AS
BEGIN
WHILE EXISTS
(
SELECT TOP 1 1
FROM [dbo].[S3SimplePermission] sec1
INNER JOIN [dbo].[ModelSection] ms ON sec1.[LootID] = ms.[ModelSectionGUID]
INNER JOIN [dbo].[S3SimplePermission] sec2 ON ms.[ParentGUID] = sec2.[LootID] AND sec1.[IdentityGUID] = sec2.[IdentityGUID]
WHERE 1=1
AND ms.[IsInherit] = 1
AND
(
sec1.[ReadValue] <> sec2.[ReadValue]
OR sec1.[WriteValue] <> sec2.[WriteValue]
OR sec1.[SecureValue] <> sec2.[SecureValue]
)
)
BEGIN
UPDATE sec1
SET sec1.[ReadValue] = sec2.[ReadValue],
sec1.[WriteValue] = sec2.[WriteValue],
sec1.[SecureValue] = sec2.[SecureValue]
FROM [dbo].[S3SimplePermission] sec1
INNER JOIN [dbo].[ModelSection] ms ON sec1.[LootID] = ms.[ModelSectionGUID]
INNER JOIN [dbo].[S3SimplePermission] sec2 ON ms.[ParentGUID] = sec2.[LootID] AND sec1.[IdentityGUID] = sec2.[IdentityGUID]
WHERE 1 = 1
AND ms.[IsInherit] = 1
AND
(
sec1.[ReadValue] <> sec2.[ReadValue]
OR sec1.[WriteValue] <> sec2.[WriteValue]
OR sec1.[SecureValue] <> sec2.[SecureValue]
)
END
END
GO
---------------------------------------------
-- dbo.procMsgBatchReportUpgrade
CREATE proc dbo.procMsgBatchReportUpgrade
@reportGUID uniqueidentifier,
@messageGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
as
--copy this message over to the messaging 2.0 tables
--this is a hack due to the old MessageGenerator not being able to talk to messaging 2.0 directly
insert into [dbo].[EmailThread] (EmailThreadGUID, Subject, DateTimeStamp, ItemGUID, IsForReporting)
select R.ReportGUID, 'Report Snapshots - ' + R.Name, min(T.DateCreated), dbo.ZeroGUID(), 1 from [dbo].[MsgTopic] T inner join [dbo].[REReport] R (readuncommitted) on R.Name = T.Tag
where R.ReportGUID = @reportGUID and not exists(select 1 from [dbo].[EmailThread] EX where EX.EmailThreadGUID = R.ReportGUID) and T.Tag != ''
group by R.ReportGUID, R.Name
insert into [dbo].[EmailMessage] (EmailMessageGUID, EmailThreadGUID, Subject, DateTimeStamp, Body, SenderUserGUID)
select M.MessageGUID, cast(max(cast(R.ReportGUID as nvarchar(36))) as uniqueidentifier), M.Subject, M.DateCreated, M.Body, M.AuthorGUID from [dbo].[MsgMessage] M inner join [dbo].[MsgTopic] T on T.TopicGUID = M.TopicGUID inner join [dbo].[REReport] R (readuncommitted) on R.Name = T.Tag
where (@messageGUID = '00000000-0000-0000-0000-000000000000' or M.MessageGUID = @messageGUID) and not exists(select 1 from [dbo].[EmailMessage] EX where EX.EmailMessageGUID = M.MessageGUID) and T.Tag != ''
group by M.MessageGUID, M.Subject, M.DateCreated, M.Body, M.AuthorGUID
having exists(select 1 from [dbo].[EmailThread] EXT where EXT.EmailThreadGUID = cast(max(cast(R.ReportGUID as nvarchar(36))) as uniqueidentifier))
update EM set EM.SenderUserGUID = S.UserGUID
from
[dbo].[EmailMessage] EM
inner join [dbo].[EmailThread] EMT on EMT.EmailThreadGUID = EM.EmailThreadGUID
inner join [dbo].[MsgMessage] M on M.MessageGUID = EM.EmailMessageGUID
inner join [dbo].[MsgTopic] T on T.TopicGUID = M.TopicGUID
inner join [dbo].[viewS3ACLSimple] S on S.LootID = T.TopicGUID and IsReadable = 1
where
EMT.EmailThreadGUID = @reportGUID
and (@messageGUID = '00000000-0000-0000-0000-000000000000' or M.MessageGUID = @messageGUID)
GO
---------------------------------------------
-- dbo.procMsgClearEmailActivity
CREATE proc [dbo].[procMsgClearEmailActivity]
(
@NumDaysToKeep int = 30
)
as
delete from MsgEmailActivity where Timestamp < DATEADD(DAY, -@NumDaysToKeep, GETDATE())
GO
---------------------------------------------
-- dbo.procMsgMarkAllMessagesRead
CREATE proc [dbo].[procMsgMarkAllMessagesRead] as
delete from msgmessageread
CREATE TABLE #tempMessageRead(
[UserGUID] [uniqueidentifier] ,
[MessageGUID] [uniqueidentifier],
)
--add all users that are recipients of topics
insert into #tempMessageRead
select s.UserGUID, m.MessageGUID from MsgTopic T
inner join msgmessage m on t.topicguid = m.topicguid
inner join dbo.viewS3ACLSimple s on cast(t.TopicGUID as varchar(36)) = s.LootID
inner join userprofile u on u.userguid = s.userguid
where s.IsReadable = 1 and t.topicguid not in (select topicguid from msgtopicarchive where userguid = u.userguid)
--add all user message combos for unsecured forums
insert into #tempMessageRead
select u.userguid, x.messageguid from userprofile u,
(select m.messageguid from msgmessage m
inner join msgtopic t on t.topicguid = m.topicguid
inner join msgforum f on t.forumguid = f.forumguid where f.ForumType = 0 ) x
--add all user message combos for secured forums
insert into #tempMessageRead
select s.userguid,m.messageguid from msgmessage m inner join msgtopic t on t.topicguid = m.topicguid
inner join msgforum f on t.forumguid = f.forumguid and f.ForumType = 1
inner join XPlan p on f.EntityGUID = p.PlanGUID
inner join viewS3ACL s on s.LootID = p.CachedLootID
inner join userprofile u on u.userguid = s.userguid
where s.IsReadable = 1
--update the message read table
insert into msgmessageread
select x.userguid, x.messageguid, 1, getdate() from
(select distinct userguid, messageguid from #tempMessageRead ) x
drop table #tempMessageRead
GO
---------------------------------------------
-- dbo.procMsgMessageCreate
CREATE proc [dbo].[procMsgMessageCreate]
(
@FromUsername nvarchar(max),
@ToUsername nvarchar(max),
@MessageTypeGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@ForumGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@Subject nvarchar(max) = 'New Message',
@Body nvarchar(max) = ''
)
as
if (@FromUsername = '' or @ToUsername = '') begin
print 'Message could not be created. Usernames were not specified'
return
end
Declare @fromUserGUID uniqueidentifier
Declare @toUserGUID uniqueidentifier
Set @fromUserGUID = (select userguid from UserProfile where UserName = @FromUsername)
Set @toUserGUID = (select userguid from UserProfile where UserName = @ToUsername)
if (@fromUserGUID = dbo.ZeroGUID() or @fromUserGUID is null) begin
print 'Message could not be created. From user does not exist in the database.'
return
end
if (@toUserGUID = dbo.ZeroGUID() or @toUserGUID is null) begin
print 'Message could not be created. To user does not exist in the database.'
return
end
if (select COUNT(*) from MsgMessageType where MessageTypeGUID = @MessageTypeGUID) = 0 begin
print 'Message could not be created. Message type does not exist in the database.'
return
end
Declare @newTopicGUID uniqueidentifier
Declare @newMessageGUID uniqueidentifier
Declare @topicType int
Declare @messageTypeType int
Set @messageTypeType = (select [TYPE] from MsgMessageType where MessageTypeGUID = @MessageTypeGUID)
if (@messageTypeType = 0) begin
--forum
if (select COUNT(*) from MsgForum where ForumGUID = @ForumGUID) = 0 begin
print 'Message could not be created. Forum does not exist in the database.'
return
end
Declare @forumType int
Set @forumType = (select forumtype from MsgForum where ForumGUID = @ForumGUID)
if (@forumType = 0) begin
--general forum
Set @topicType = 0
end else if (@forumType = 1) begin
--plan forum
Set @topicType = 1
end else begin
print 'Message could not be created. Incorrect type specified for forum.'
return
end
end else if (@messageTypeType = 1) begin
--notification
Set @topicType = 3
Set @ForumGUID = dbo.ZeroGUID()
end else if (@messageTypeType = 2) begin
--private message
set @topicType = 2
Set @ForumGUID = dbo.ZeroGUID()
end else begin
print 'Message could not be created. Incorrect type specified for message type.'
return
end
Set @newTopicGUID = (select NEWID())
insert into MsgTopic (TopicGUID, ForumGUID, AuthorGUID, Name, TopicType) values (@newTopicGUID, @ForumGUID, @fromUserGUID, @Subject, @topicType)
Set @newMessageGUID = (select NEWID())
insert into MsgMessage (MessageGUID, TopicGUID, MessageTypeGUID, ReplyToMsgGUID, [Subject], Body, AuthorGUID, DateSent) values (@newMessageGUID, @newTopicGUID, @MessageTypeGUID, dbo.ZeroGUID(), @Subject, @Body, @fromUserGUID, '1/1/1900')
--add security for From & To user
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue) values (@newTopicGUID, @fromUserGUID, 1, 1, 1)
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue) values (@newTopicGUID, @toUserGUID, 1, 1, 1)
print 'Message created successfully'
GO
---------------------------------------------
-- dbo.procMsgRemoveAll
CREATE PROC dbo.procMsgRemoveAll
AS
-- remove file attachments linked to messages
delete from FileAttachment where entityguid in (select messageguid from msgmessage)
-- truncate tables
delete from MsgAttachment
delete from MsgBookmark
delete from MsgEmailActivity
delete from MsgMessage
delete from MsgMessagePlanLink
delete from MsgMessageRead
delete from MsgTopic
delete from MsgTopicArchive
delete from MsgForum
delete from MsgForumRead
delete from MsgForumViewed
delete from MsgEmailSummary
delete from EmailRecipient
delete from EmailMessage
delete from EmailThread
GO
---------------------------------------------
-- dbo.procPlanCreate
CREATE proc [dbo].[procPlanCreate]
@PlanGuid UNIQUEIDENTIFIER
,@PlanTypeName VARCHAR(450)
,@PlanName VARCHAR(450)
,@authorUserName VARCHAR(450)
,@templateName VARCHAR(450)
,@planDimensionFQN VARCHAR(450) = ''
,@lootPrefix NVARCHAR(10) = 'P|'
,@isSettingAuthor BIT = 1
,@isRefreshingSecurity BIT = 1
,@isRefreshDirectoryField BIT = 1
,@isRunningPlantypeScript BIT = 0
,@formDefGUID UNIQUEIDENTIFIER = '00000000-0000-0000-0000-000000000000'
,@wfMapGUID UNIQUEIDENTIFIER = '00000000-0000-0000-0000-000000000000'
,@isCreateMissingFormData BIT = 1
,@isFromPlanImporter BIT = 0
as
-- validation
if len(@templateName) = 0 begin print 'template name required' return end
if len(@lootPrefix) = 0 begin print 'loot prefix is required' return end
declare @cnt int
select @cnt = COUNT(*) from xplan where PlanGUID = @PlanGuid
if @cnt > 0 begin
print 'plan already exists ' + cast(@PlanGuid as varchar(36))
return
end
-- initialization
select @PlanName = dbo.GetWebSafeString(@PlanName)
declare @ptguid uniqueidentifier
declare @ptdimguid uniqueidentifier
select @ptguid = plantypeguid, @ptdimguid = DimensionGUID from PlanType where Name = @PlanTypeName
declare @mtguid uniqueidentifier
if LEN(@templateName) = 0 begin
select top 1 @mtguid = ModelTemplateGUID from plantypemodeltemplatelink where plantypeguid = @ptguid
end else begin
select top 1 @mtguid = ModelTemplateGUID from emfmodeltemplate where Name like @templateName
end
declare @formguid uniqueidentifier
IF @formDefGUID = '00000000-0000-0000-0000-000000000000' BEGIN
select top 1 @formguid = formguid from fe2form where plantypeguid = @ptguid
END ELSE BEGIN
select top 1 @formguid = formguid from fe2form where formguid = @formDefGUID
END
declare @authorRoleGUID uniqueidentifier
select @authorRoleGUID = userroleguid from UserRole where Type = 1
declare @authorUserGUID uniqueidentifier
select @authorUserGUID = userguid from UserProfile where UserName = @authorUserName
if (@authorUserGUID is null) select @authorUserGUID = usergroupguid from UserGroup where Name = @authorUserName
if (@authorUserGUID is null and (@authorUserName like 'sdt\%' or @authorUserName = 'System')) set @authorUserGUID = '10101010-1111-0000-1111-101010101010'
declare @nameFFGUID uniqueidentifier
select @nameFFGUID = NameFormFieldGUID from PlanType where PlanTypeGUID = @ptguid
-- validation
if @PlanName is null begin print '@PlanName is null' return end
if @ptguid is null begin print '@ptguid is null' return end
if @authorUserGUID is null begin print '@authorUserGUID is null' return end
if @mtguid is null begin print '@mtguid is null' return end
if @formguid is null begin print '@formguid is null' return end
PRINT 'Creating plan: ' + cast(@PlanGuid AS NVARCHAR(36))
declare @planid int
insert into XPlan (planguid, DefaultFormDefGUID, ModelTemplateGUID, PlanTypeGUID)
select
@PlanGuid,
@formguid ,
@mtguid,
@ptguid
set @planid = @@IDENTITY
-- insert dimension member, and add security
-- info: dimension attributes will be ignored by this procedure
-- need to insert into all non view backed secondary groups then insert into primary group last
-- because security trigger is on primary group and inner joins to secondary groups will filter out members if they dont exist in secondary group
declare @planMemberSql AS NVARCHAR(MAX)
if (len(@planDimensionFQN) > 0) begin
-- insert into secondary groups
declare @planMemberGroupName nvarchar(450)
declare crsDimGroups cursor fast_forward for
select DG.SchemaName + '.' + DG.ObjectName
from ScoreDimensionGroup DG
where
DG.DimensionGUID = @ptdimguid
and (DG.ObjectName not like 'view%' or (DG.SchemaName + '.' + DG.ObjectName like replace(replace(@planDimensionFQN, '[', ''), ']', '') + '%' and DG.ObjectName like '%_custom'))
and DG.DimensionGroupGUID not in (select primarygroupguid from scoredimension where dimensionguid = @ptdimguid)
open crsDimGroups
fetch next from crsDimGroups into @planMemberGroupName
while(@@FETCH_STATUS = 0) begin
SET @planMemberSql = 'INSERT INTO ' + @planMemberGroupName + ' (MemberGUID) VALUES (''' + cast(@PlanGuid AS NVARCHAR(36)) + ''')'
EXEC (@planMemberSql)
fetch next from crsDimGroups into @planMemberGroupName
end
close crsDimGroups
deallocate crsDimGroups
-- insert into primary group
set @planMemberSql = 'If not exists (select * from ' + @planDimensionFQN + ' where MemberGUID = ''' + + cast(@PlanGuid AS NVARCHAR(36)) + ''')' + ' INSERT INTO ' + @planDimensionFQN + ' (MemberGUID) VALUES (''' + cast(@PlanGuid AS NVARCHAR(36)) + ''')'
EXEC (@planMemberSql)
end
declare @plandimguid uniqueidentifier;
set @plandimguid = (select dimensionguid from PlanType where Name=@PlanTypeName)
EXEC [dbo].[procScoreDimensionCacheRefresh] @dimensionGUID = @plandimguid
-- refresh security
if @isRefreshingSecurity = 1 begin
exec procScoreSetDimensionSecurity30 @ptdimguid
end
-- set author
declare @lootid nvarchar(max)
if @isSettingAuthor = 1 begin
set @lootid = @lootPrefix + cast(@planid as varchar(max))
exec dbo.procS3AssignIdentityToSpecialRole @authoruserguid, 1, @lootid
end
-- add/update directory cache
EXEC procDirectoryAddEntry @PlanGuid, @ptguid
-- add name to formdata - NO LONGER DONE
-- add to workflow
IF @wfMapGUID = '00000000-0000-0000-0000-000000000000' BEGIN
IF @isFromPlanImporter = 0 BEGIN
insert into WFToken ( EntityGUID, WorkflowMapGUID, WorkflowStepGUID )
select @PlanGuid, wf.WorkflowMapGUID,wfs.WorkflowStepGUID
from
PlanTypeWorkflowMapLink wf
inner join WFWorkflowStep wfs on wf.WorkflowMapGUID = wfs.WorkflowMapGUID
where PlanTypeGUID = @ptguid and IsRequiredWorkflow = 1 and IsStart = 1
END
END ELSE BEGIN
insert into WFToken ( EntityGUID, WorkflowMapGUID, WorkflowStepGUID )
select @PlanGuid, wf.WorkflowMapGUID,wfs.WorkflowStepGUID
from
PlanTypeWorkflowMapLink wf
inner join WFWorkflowStep wfs on wf.WorkflowMapGUID = wfs.WorkflowMapGUID
where PlanTypeGUID = @ptguid and wf.WorkflowMapGUID = @wfMapGUID
END
-- fillin default
exec procScoreFillinSetByTemplateDefault @PlanGuid, 0
-- (optional) @ptguid
if @isRunningPlantypeScript = 1 begin
DECLARE @saveScriptGUID AS UNIQUEIDENTIFIER
DECLARE @saveScriptGUID2 AS UNIQUEIDENTIFIER
DECLARE @saveScript AS VARCHAR(MAX)
DECLARE @saveScript2 AS VARCHAR(MAX)
select @saveScriptGUID = OnSaveCustomScriptGUID from PlanType where PlanTypeGUID = @ptguid
select @saveScriptGUID2 = OnSaveCustomScript2GUID from PlanType where PlanTypeGUID = @ptguid
IF @saveScriptGUID <> '00000000-0000-0000-0000-000000000000' BEGIN
select @saveScript = scripttext from CustomScript where CustomScriptGUID = @saveScriptGUID
set @saveScript = REPLACE(@saveScript, '@PlanGuidList', '''' + cast(@PlanGuid AS nvarchar(36)) + '''')
exec (@saveScript)
END
IF @saveScriptGUID2 <> '00000000-0000-0000-0000-000000000000' BEGIN
select @saveScript2 = scripttext from CustomScript where CustomScriptGUID = @saveScriptGUID2
set @saveScript2 = REPLACE(@saveScript2, '@PlanGuidList', '''' + cast(@PlanGuid AS nvarchar(36)) + '''')
exec (@saveScript2)
END
end
-- create missing form field
IF @isCreateMissingFormData = 1 BEGIN
exec procFormDataCreateMissing @ptguid
END
-- refresh fields in directory cache
IF @isRefreshDirectoryField = 1 BEGIN
EXEC procDirectoryRefreshFieldAll @ptguid
END
GO
---------------------------------------------
-- dbo.procPlanDelete
CREATE PROCEDURE [dbo].[procPlanDelete]
@PlanGUID AS UNIQUEIDENTIFIER,
@PlanDimension AS NVARCHAR(128),
@LootPrefix AS NVARCHAR(16) = 'P|',
@IsDeletingData AS BIT = 0
AS
-- assumptions
-- no score facts
PRINT 'Deleting ' + CAST(@PlanGUID AS NVARCHAR(36))
DECLARE @LootGroupID NVARCHAR(128)
SELECT @LootGroupID = CachedLootID FROM XPlan WHERE PlanGUID = @PlanGUID
DECLARE @ModelTemplateGUID AS UNIQUEIDENTIFIER
SET @ModelTemplateGUID = (SELECT ModelTemplateGUID FROM XPlan WHERE PlanGUID = @PlanGUID)
IF @PlanGUID IS NULL BEGIN
Print 'Plan not found'
RETURN
END
IF @ModelTemplateGUID IS NULL BEGIN
Print 'Template not found: ' + CAST(@ModelTemplateGUID AS NVARCHAR(36))
RETURN
END
--Cache
exec [dbo].[procInvalidateModelWorkbookCache] @PlanGUID, 0, 0, 'procPlanDelete'
DECLARE @SharedSecurityCount int
select @SharedSecurityCount = count(*) from [dbo].[XPlan] P (readuncommitted) inner join [dbo].[PlanType] PT (readuncommitted) on PT.PlanTypeGUID = P.PlanTypeGUID inner join [dbo].[ScoreDimension] D (readuncommitted) on D.DimensionGUID = PT.DimensionGUID where P.PlanGUID = @PlanGUID and D.IsSharingSecurity = 1
--Plan Dimension
DECLARE @planDimensionDeleteSql AS NVARCHAR(MAX)
SET @planDimensionDeleteSql = 'DELETE ' + @PlanDimension + ' WHERE memberguid = ''' + CAST(@PlanGUID AS NVARCHAR(36)) + ''''
EXEC (@planDimensionDeleteSql)
--XPlan
DELETE
XPlan
WHERE
PlanGUID = @PlanGUID
--remove dependent history records
DELETE FROM dbo.WFHistory WHERE EntityGUID = @PlanGUID
--S3 (loot and assignment), if the plan does not share security
if (@SharedSecurityCount = 0) begin
EXEC dbo.procS3ClearSecurityByLootGroup @LootGroupID
end
--delete model data
if @IsDeletingData = 1 begin
DECLARE @deleteSql AS NVARCHAR(MAX)
DECLARE @whereSql AS NVARCHAR(MAX)
SET @deleteSql = 'delete data from zzviewModelDataBasic_{mdcnamefriendly} data where data.plansguid = ''' + CAST(@PlanGUID AS NVARCHAR(36)) + ''''
SET @whereSql = 'where modeldataconfigguid in (SELECT LS.ParentModelDataConfigGUID FROM EMFModelTemplateLinkSource LS WHERE LS.IsSelf = 1 AND LS.ModelTemplateGUID = ''' + CAST(@ModelTemplateGUID AS NVARCHAR(36)) + ''')'
exec procEMFRunForManyStructures @deleteSql, @whereSql, 1, 1
--score (implementation incomplete)
delete from [dbo].[ScoreFillin] where ModelGUID = @PlanGUID
exec [dbo].[procScoreFillinTableRefresh] @PlanGUID
end
GO
---------------------------------------------
-- dbo.procPlanDeleteAll
CREATE PROCEDURE [dbo].[procPlanDeleteAll]
@PlanDimension AS NVARCHAR(128),
@IsExecuting as bit = 0
AS
declare @idattr nvarchar(100)
select @idattr = A.SQLColumnName
from [dbo].[ScoreAttribute] A inner join [dbo].[ScoreDimensionGroup] DG on DG.DimensionGroupGUID = A.DimensionGroupGUID inner join [dbo].[ScoreDimension] D on DG.DimensionGUID = D.DimensionGUID and A.AttributeGUID = D.DefaultKeyGUID
where (DG.SchemaName + '.' + DG.ObjectName) = @PlanDimension or (D.SQLSchemaName + '.' + D.SQLObjectName) = @PlanDimension
or ('[' + DG.SchemaName + '].[' + DG.ObjectName + ']') = @PlanDimension or ('[' + D.SQLSchemaName + '].[' + D.SQLObjectName + ']') = @PlanDimension
declare @sql as nvarchar(max) = '
declare plancursor CURSOR FAST_FORWARD FOR
select
dimp.memberguid,
p.name
from ' + @PlanDimension + ' dimp
left join xplan p on p.planguid = dimp.memberguid
where
' + @idattr + ' != 0
open plancursor;
declare @memberguid uniqueidentifier;
declare @planname nvarchar(100);
FETCH NEXT FROM plancursor into @memberguid, @planname
WHILE (@@FETCH_STATUS = 0)
BEGIN
print (''Deleting Plan: '' + @planname);
exec procPlanDelete @memberguid, ''' + @PlanDimension + ''', default, 1
FETCH NEXT FROM plancursor into @memberguid, @planname
END
close plancursor;
deallocate plancursor;
delete from ' + @PlanDimension + ' where ' + @idattr + ' != 0
'
if (@IsExecuting=1)
begin
exec (@sql)
end
else
begin
print @sql
end
RETURN
GO
---------------------------------------------
-- dbo.procPlanHistoryInsert
create procedure procPlanHistoryInsert
@planGUIDList nvarchar(max),
@userGUID uniqueidentifier,
@category nvarchar(64),
@description nvarchar(4000)
as
insert into HistoryItem (HISTORYITEMGUID, OBJECTGUID, OBJECTTYPE, DATETIMESTAMP, MODIFIERUSERGUID, CATEGORY, DESCRIPTION, MODIFIERUSERNAME, ITEMCOUNT, METAXML)
select
NEWID(),
P.PlanGUID,
'',
GETDATE(),
@userGUID,
@category,
@description,
coalesce((select NameFull from UserProfile where UserGUID = @userGUID), ''),
1,
''
from
XPlan P
where
P.PlanGUID in(select [guid] from dbo.ConvertCSGuidsToTable(@planGUIDList, ','))
GO
---------------------------------------------
-- dbo.procPlanMarkModelWorkbookAsCached
CREATE PROC procPlanMarkModelWorkbookAsCached
@planguid uniqueidentifier
AS
UPDATE XPlan SET IsModelWorkbookCached = 1 WHERE PlanGUID = @planguid
GO
---------------------------------------------
-- dbo.procPopulateCMFactsWithAllAccounts
/*************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2020-11-13 KF JAZZ-8741 My Performance | Standard Metric - UOS Non Staffing
*************************************************************/
CREATE PROCEDURE [dbo].[procPopulateCMFactsWithAllAccounts]
@MetricGUID uniqueidentifier
AS
DECLARE @AccountDimensionGUID uniqueidentifier, @BucketGUID uniqueidentifier
SELECT @BucketGUID = BucketGUID
FROM dbo.CMMetric
WHERE MetricGUID = @MetricGUID
SELECT @AccountDimensionGUID = DimensionGUID
FROM dbo.ScoreDimension
WHERE GlobalID = 'Account'
IF @BucketGUID IS NOT NULL
BEGIN
DELETE FROM dbo.CMFacts
WHERE BucketGUID = @BucketGUID
INSERT INTO dbo.CMFacts (DimensionGUID, MemberGUID, BucketGUID)
SELECT @AccountDimensionGUID, MemberGUID, @BucketGUID
FROM fw.DimAccount
END
GO
---------------------------------------------
-- dbo.procPopulateDataDictionaryFieldsValueExamples
-- =============================================
-- Author: Yaroslav Dembitskyi
-- Create date: 7/20/2017
-- Description: Populates [dbo].[DataDictionaryFieldValueExample] based on existing data. Also provides possibility to update example value for specific scoreGuid
-- Change History:
-- 2/6/2019 yrhee Remove cursors and invalid keylink lookups
-- =============================================
CREATE PROC [dbo].[procPopulateDataDictionaryFieldsValueExamples] (
@specificScoreGuidToUpdate UNIQUEIDENTIFIER = NULL
)
AS
BEGIN
IF OBJECT_ID('tempdb..#tempDataDictionaryGUIDs') IS NOT NULL
BEGIN
DROP TABLE #tempDataDictionaryGUIDs;
END
CREATE TABLE #tempDataDictionaryGUIDs (ScoreGUID UNIQUEIDENTIFIER)
IF(@specificScoreGuidToUpdate IS NOT NULL)
BEGIN
INSERT INTO #tempDataDictionaryGUIDs
SELECT @specificScoreGuidToUpdate
END
ELSE
BEGIN
INSERT INTO #tempDataDictionaryGUIDs
SELECT DISTINCT GivenScoreAttributeGUID
FROM dbo.viewDataDictionary
END
-- =============================================
-- Get Attribute Values (incl KeyLinks)
-- =============================================
DECLARE @sqlAttributes NVARCHAR(MAX) =
(
SELECT dbo.STRAGGR(
' SELECT TOP 1 ''' + AttributeGUIDAsText + ''' AttributeGUID, '
+ CASE WHEN ColumnTypeName = 'bit'
THEN ' ''True/False'' ExampleValue '
WHEN ColumnTypeName LIKE '%datetime%'
THEN ' CONVERT(CHAR(10), ['+ SQLColumnName + '], 103) + SUBSTRING(CONVERT(varchar, [' + SQLColumnName + '], 0),12, 8) ExampleValue '
+ FromWhereClause
ELSE ' CONVERT(NVARCHAR(4000),['+ SQLColumnName + ']) ExampleValue '
+ FromWhereClause END
, ' UNION ALL ', '')
FROM
(
SELECT DISTINCT
CONVERT(NVARCHAR(40), attr.AttributeGUID) AttributeGUIDAsText,
attr.SQLColumnName,
TYPE_NAME(attr.ColumnType) ColumnTypeName,
' FROM [' + dim.SQLSchemaName + '].[' + dim.SQLObjectName + '] (NOLOCK) WHERE CONVERT(NVARCHAR(4000),[' + attr.SQLColumnName + ']) <> '''' '
+ CASE WHEN TYPE_NAME(attrKey.ColumnType) LIKE '%int' THEN ' and [' + attrKey.SQLColumnName + '] <> 0 ' ELSE '' END FromWhereClause
FROM #tempDataDictionaryGUIDs dd
INNER JOIN ScoreAttribute attr WITH (READUNCOMMITTED) ON dd.ScoreGUID = attr.AttributeGUID
INNER JOIN ScoreDimensionGroup gr WITH (READUNCOMMITTED) ON attr.DimensionGroupGUID = gr.DimensionGroupGUID
INNER JOIN ScoreDimension dim WITH (READUNCOMMITTED) ON gr.DimensionGUID = dim.DimensionGUID
INNER JOIN ScoreAttribute attrKey WITH (READUNCOMMITTED) ON dim.DefaultKeyGUID = attrKey.AttributeGUID
INNER JOIN dbo.viewSysColumns col WITH (READUNCOMMITTED) ON col.SchemaName = dim.SQLSchemaName AND col.ObjectName = dim.SQLObjectName AND col.ColumnName = attr.SQLColumnName
) t1
);
-- =============================================
-- Get Measure Values
-- =============================================
DECLARE @sqlMeasures NVARCHAR(MAX) =
(
SELECT dbo.STRAGGR(
' SELECT TOP 1 ''' + MeasureGUIDAsText + ''' MeasureGUID, '
+ CASE WHEN ColumnTypeName = 'bit'
THEN ' ''True/False'' ExampleValue '
WHEN ColumnTypeName LIKE '%datetime%'
THEN ' CONVERT(CHAR(10), ['+ SQLColumnName + '], 103) + SUBSTRING(CONVERT(varchar, [' + SQLColumnName + '], 0),12, 8) ExampleValue '
+ FromWhereClause
ELSE ' CONVERT(NVARCHAR(4000),['+ SQLColumnName + ']) ExampleValue '
+ FromWhereClause END
, ' UNION ALL ', '')
FROM
(
SELECT DISTINCT
CONVERT(NVARCHAR(40), m.MeasureGUID) MeasureGUIDAsText,
m.SQLColumnName,
TYPE_NAME(m.ColumnTypeValue) ColumnTypeName,
' FROM [' + dt.SQLSchemaName + '].[' + dt.SQLObjectName + '] (NOLOCK) WHERE CONVERT(NVARCHAR(4000),[' + m.SQLColumnName + ']) <> '''' ' FromWhereClause
FROM #tempDataDictionaryGUIDs dd
INNER JOIN ScoreMeasure m WITH (READUNCOMMITTED) ON dd.ScoreGUID = m.MeasureGUID
INNER JOIN ScoreDataTable dt WITH (READUNCOMMITTED) ON m.DataTableGUID = dt.DataTableGUID
INNER JOIN dbo.viewSysColumns col WITH (READUNCOMMITTED) ON col.SchemaName = dt.SQLSchemaName AND col.ObjectName = dt.SQLObjectName AND col.ColumnName = m.SQLColumnName
) t1
);
-- =====================================================
-- Final Updates to dbo.DataDictionaryFieldValueExample
-- =====================================================
DECLARE @sqlFinal NVARCHAR(MAX) =
'CREATE TABLE #ExampleValues (ScoreGUID UNIQUEIDENTIFIER, ExampleValue NVARCHAR(4000)) '
IF (@sqlMeasures IS NOT NULL)
BEGIN
SET @sqlFinal = @sqlFinal
+ ' INSERT INTO #ExampleValues (ScoreGUID, ExampleValue)
SELECT MeasureGUID, ExampleValue
FROM (' + @sqlMeasures + ') tMeas '
END
IF (@sqlAttributes IS NOT NULL)
BEGIN
SET @sqlFinal = @sqlFinal
+ ' INSERT INTO #ExampleValues (ScoreGUID, ExampleValue)
SELECT AttributeGUID, ExampleValue
FROM (' + @sqlAttributes + ') tAttr '
END
SET @sqlFinal = @sqlFinal
+ ' UPDATE dd
SET dd.ExampleValue = ev.ExampleValue
FROM dbo.DataDictionaryFieldValueExample dd
INNER JOIN #ExampleValues ev ON dd.ScoreGUID = ev.ScoreGUID
WHERE dd.ExampleValue != ev.ExampleValue
INSERT INTO dbo.DataDictionaryFieldValueExample (ScoreGUID, ExampleValue)
SELECT ev.ScoreGUID, ev.ExampleValue
FROM #ExampleValues ev
LEFT JOIN dbo.DataDictionaryFieldValueExample dd on ev.ScoreGUID = dd.ScoreGUID
WHERE dd.ScoreGUID IS NULL '
IF (@specificScoreGuidToUpdate IS NULL) -- DON'T DELETE IF SINGLE GUID
BEGIN
SET @sqlFinal = @sqlFinal
+ ' DELETE FROM dbo.DataDictionaryFieldValueExample
WHERE ScoreGUID NOT IN (SELECT ScoreGUID FROM #ExampleValues) '
END
SET @sqlFinal = @sqlFinal
+ ' DROP TABLE #ExampleValues ';
EXEC(@sqlFinal);
IF OBJECT_ID('tempdb..#tempDataDictionaryGUIDs') IS NOT NULL
BEGIN
DROP TABLE #tempDataDictionaryGUIDs;
END
END
GO
---------------------------------------------
-- dbo.procPrintLongText
create proc dbo.procPrintLongText
@String NVARCHAR(MAX)
as
DECLARE @CurrentEnd BIGINT; /* track the length of the next substring */
DECLARE @offset tinyint; /*tracks the amount of offset needed */
set @string = replace( replace(@string, char(13) + char(10), char(10)) , char(13), char(10))
WHILE LEN(@String) > 1
BEGIN
IF CHARINDEX(CHAR(10), @String) between 1 AND 4000
BEGIN
SET @CurrentEnd = CHARINDEX(char(10), @String) -1
set @offset = 2
END
ELSE
BEGIN
SET @CurrentEnd = 4000
set @offset = 1
END
PRINT SUBSTRING(@String, 1, @CurrentEnd)
set @string = SUBSTRING(@String, @CurrentEnd+@offset, LEN(@String))
END
GO
---------------------------------------------
-- dbo.procRESQLReportRegisteredAttributeFixReferences
CREATE proc dbo.procRESQLReportRegisteredAttributeFixReferences
@reportGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@attributeGUIDCSV nvarchar(max) = '',
@beforeColumnName nvarchar(100) = '',
@afterColumnName nvarchar(100) = '',
@dataViewGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
as
------------------------------------------
-- AD HOC REPORTS
------------------------------------------
--fix broken ad hoc parameters - always works as long as the attribute is registered
update p set p.ColumnName = ra.ColumnName, p.Name = case when @afterColumnName = '' then p.Name else @afterColumnName end
from
viewREClientReportParameter_Broken bk
inner join REClientReportParameter p on p.ClientReportParameterGUID = bk.ClientReportParameterGUID
inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = bk.ReportGUID and cast(ra.AttributeGUID as nvarchar(36)) = p.AttributeID
where
bk.ReportGUID = @reportGUID or @reportGUID = '00000000-0000-0000-0000-000000000000'
and (@dataViewGUID = '00000000-0000-0000-0000-000000000000' or exists(select 1 from REClientReportDataSourceLink l where l.ReportGUID = bk.ReportGUID and l.DataSourceGUID = @dataViewGUID))
--fix broken ad hoc section attributes - always works as long as the attribute is registered
update sa set sa.ColumnName = ra.ColumnName, sa.Name = case when @afterColumnName = '' then sa.Name else @afterColumnName end
from
viewREClientReportSectionAttribute_Broken bk
inner join REClientReportSectionAttribute sa on sa.ClientReportSectionAttributeGUID = bk.ClientReportSectionAttributeGUID
inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = bk.ReportGUID and cast(ra.AttributeGUID as nvarchar(36)) = sa.AttributeID
where
bk.ReportGUID = @reportGUID or @reportGUID = '00000000-0000-0000-0000-000000000000'
and (@dataViewGUID = '00000000-0000-0000-0000-000000000000' or exists(select 1 from REClientReportDataSourceLink l where l.ReportGUID = bk.ReportGUID and l.DataSourceGUID = @dataViewGUID))
------------------------------------------
-- SQL REPORTS
------------------------------------------
--NOTE: not fixing display names because this would break excel report references that cannot be updated via SQL
--fix broken sql report display columns that match rename parameters
if (@attributeGUIDCSV != '' and @beforeColumnName != '' and @afterColumnName != '') begin
update dc set dc.ColumnName = ra.ColumnName
from
viewRESQLReportDisplayColumn_Broken bk
inner join RESQLReportSetup rs on rs.SQLReportSetupGUID = bk.SQLReportSetupGUID
inner join RESQLReportDisplayColumn dc on dc.DisplayColumnGUID = bk.DisplayColumnGUID
inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = bk.ReportGUID and ra.ColumnName = @afterColumnName
inner join viewScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
inner join (select guid as AttributeGUID from dbo.ConvertCSGuidsToTable(@attributeGUIDCSV, ',')) csv on csv.AttributeGUID = a.AttributeGUID or csv.AttributeGUID = a.ForeignKeyGUID or csv.AttributeGUID = a.InferredAttributeGUID
where
(dc.ColumnName = @beforeColumnName or @beforeColumnName like dc.ColumnName + ' Name')
and (bk.ReportGUID = @reportGUID or @reportGUID = '00000000-0000-0000-0000-000000000000')
and (@dataViewGUID = '00000000-0000-0000-0000-000000000000' or rs.DataViewGUID = @dataViewGUID)
end else begin
--fix broken sql report display columns - only works if column name mismatch is only due to extra/missing spaces
update dc set dc.ColumnName = ra.ColumnName
from
viewRESQLReportDisplayColumn_Broken bk
inner join RESQLReportSetup rs on rs.SQLReportSetupGUID = bk.SQLReportSetupGUID
inner join RESQLReportDisplayColumn dc on dc.DisplayColumnGUID = bk.DisplayColumnGUID
inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = bk.ReportGUID and replace(ra.ColumnName, ' ', '') = replace(dc.ColumnName, ' ', '')
where
bk.ReportGUID = @reportGUID or @reportGUID = '00000000-0000-0000-0000-000000000000'
and (@dataViewGUID = '00000000-0000-0000-0000-000000000000' or rs.DataViewGUID = @dataViewGUID)
end
--fix broken sql report filter columns that match rename parameters
if (@attributeGUIDCSV != '' and @beforeColumnName != '' and @afterColumnName != '') begin
update fc set fc.ColumnName = ra.ColumnName
from
viewRESQLReportFilterColumn_Broken bk
inner join RESQLReportSetup rs on rs.SQLReportSetupGUID = bk.SQLReportSetupGUID
inner join RESQLReportFilterColumn fc on fc.FilterColumnGUID = bk.FilterColumnGUID
inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = bk.ReportGUID and ra.ColumnName = @afterColumnName
inner join viewScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
inner join (select guid as AttributeGUID from dbo.ConvertCSGuidsToTable(@attributeGUIDCSV, ',')) csv on csv.AttributeGUID = a.AttributeGUID or csv.AttributeGUID = a.ForeignKeyGUID or csv.AttributeGUID = a.InferredAttributeGUID
where
(fc.ColumnName = @beforeColumnName or @beforeColumnName like fc.ColumnName + ' Name')
and (bk.ReportGUID = @reportGUID or @reportGUID = '00000000-0000-0000-0000-000000000000')
and (@dataViewGUID = '00000000-0000-0000-0000-000000000000' or rs.DataViewGUID = @dataViewGUID)
end else begin
--fix broken sql report filter columns - only works if column name mismatch is only due to extra/missing spaces
update fc set fc.ColumnName = ra.ColumnName
from
viewRESQLReportFilterColumn_Broken bk
inner join RESQLReportSetup rs on rs.SQLReportSetupGUID = bk.SQLReportSetupGUID
inner join RESQLReportFilterColumn fc on fc.FilterColumnGUID = bk.FilterColumnGUID
inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = bk.ReportGUID and replace(ra.ColumnName, ' ', '') = replace(fc.ColumnName, ' ', '')
where
bk.ReportGUID = @reportGUID or @reportGUID = '00000000-0000-0000-0000-000000000000'
and (@dataViewGUID = '00000000-0000-0000-0000-000000000000' or rs.DataViewGUID = @dataViewGUID)
end
------------------------------------------
-- EXCEL REPORTS
------------------------------------------
--fix broken excel reporter sort columns that match rename parameters
if (@attributeGUIDCSV != '' and @beforeColumnName != '' and @afterColumnName != '') begin
update p set p.ColumnName = ra.ColumnName
from
viewRESortingParameter_Broken bk
inner join RESortingParameter p on p.ParameterGUID = bk.ParameterGUID
inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = bk.ReportGUID and ra.ColumnName = @afterColumnName
inner join viewScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
inner join (select guid as AttributeGUID from dbo.ConvertCSGuidsToTable(@attributeGUIDCSV, ',')) csv on csv.AttributeGUID = a.AttributeGUID or csv.AttributeGUID = a.ForeignKeyGUID or csv.AttributeGUID = a.InferredAttributeGUID
where
(p.ColumnName = @beforeColumnName or @beforeColumnName like p.ColumnName + ' Name')
and (bk.ReportGUID = @reportGUID or @reportGUID = '00000000-0000-0000-0000-000000000000')
and (@dataViewGUID = '00000000-0000-0000-0000-000000000000' or bk.DataViewGUID = @dataViewGUID)
end else begin
--fix broken excel reporter sort columns - only works if column name mismatch is only due to extra/missing spaces
update p set p.ColumnName = ra.ColumnName
from
viewRESortingParameter_Broken bk
inner join RESortingParameter p on p.ParameterGUID = bk.ParameterGUID
inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = bk.ReportGUID and replace(ra.ColumnName, ' ', '') = replace(p.ColumnName, ' ', '')
where
bk.ReportGUID = @reportGUID or @reportGUID = '00000000-0000-0000-0000-000000000000'
and (@dataViewGUID = '00000000-0000-0000-0000-000000000000' or bk.DataViewGUID = @dataViewGUID)
end
------------------------------------------
-- DASHBOARDS
------------------------------------------
if (@dataViewGUID = '00000000-0000-0000-0000-000000000000') begin
--fix broken desktop parameters
update bk set bk.ColumnName = ra.ColumnName, bk.Name = case when @afterColumnName = '' then bk.Name else @afterColumnName end
from
viewDesktopParameter_Broken bk
inner join (
select
dp.DesktopParameterGUID,
max(ra.ColumnName) as ColumnName
from
DesktopParameter dp
inner join REReport r on dp.ReportGuidsCSV like '%' + cast(r.ReportGUID as nvarchar(36)) + '%'
inner join viewRESQLReportRegisteredAttribute_ByReport ra on ra.ReportGUID = r.ReportGUID and cast(ra.AttributeGUID as nvarchar(36)) = dp.AttributeID
group by
dp.DesktopParameterGUID
) ra on ra.DesktopParameterGUID = bk.DesktopParameterGUID
end
GO
---------------------------------------------
-- dbo.procRESQLReportRegisteredAttributeRename
CREATE proc [dbo].[procRESQLReportRegisteredAttributeRename]
@attributeGUID uniqueidentifier,
@oldName nvarchar(100),
@newName nvarchar(100),
@DataViewGUID uniqueidentifier = null
as
--get all linked attributes
declare @refAttributes nvarchar(max)
select
@refAttributes = dbo.strAggr(cast(a.AttributeGUID as nvarchar(36)), ',', '')
from
viewScoreAttribute a
where
a.AttributeGUID = @attributeGUID
or a.ForeignKeyGUID = @attributeGUID
or a.InferredAttributeGUID = @attributeGUID
if (@refAttributes is null or @refAttributes = '') begin
return
end
--include CAP attributes that are inferred through Project
declare @refAttributesCAP nvarchar(max)
select
@refAttributesCAP = dbo.strAggr(cast(a.AttributeGUID as nvarchar(36)), ',', '')
from
viewScoreAttribute a
where
a.ForeignKeyGUID in(select guid from dbo.ConvertCSGuidsToTable(@refAttributes, ','))
or a.InferredAttributeGUID in(select guid from dbo.ConvertCSGuidsToTable(@refAttributes, ','))
if (@refAttributesCAP is not null and @refAttributesCAP != '') begin
set @refAttributes = @refAttributes + ',' + @refAttributesCAP
end
--include MR Department attributes if renaming a Department attribute
if (exists(select 1 from viewScoreAttribute where AttributeGUID = @attributeGUID and DimensionName = 'Department')) begin
declare @refAttributesMR nvarchar(max)
select
@refAttributesMR = dbo.strAggr(cast(mra.AttributeGUID as nvarchar(36)), ',', '')
from
viewScoreAttribute a
inner join viewScoreAttribute mra on mra.SQLColumnName = a.SQLColumnName
where
a.DimensionName = 'Department'
and mra.DimensionName = 'MR Department'
and (
a.AttributeGUID = @attributeGUID
or a.ForeignKeyGUID = @attributeGUID
or a.InferredAttributeGUID = @attributeGUID
)
if (@refAttributesMR is not null and @refAttributesMR != '') begin
set @refAttributes = @refAttributes + ',' + @refAttributesMR
end
end
--update registered attribute alias
update ra set ra.ColumnAlias = @newName
from
RESQLReportRegisteredAttribute ra
inner join viewScoreAttribute a on a.AttributeGUID = ra.AttributeGUID
left JOIN RESQLReportRegisteredDimension d ON ra.RegisteredDimensionGUID = d.RegisteredDimensionGUID
where
a.AttributeGUID in(select guid from dbo.ConvertCSGuidsToTable(@refAttributes, ','))
and (ra.ColumnAlias = @oldName or @oldName like ra.ColumnAlias + ' Name')
and (d.DataViewGUID = @DataViewGUID or @DataViewGUID is NULL)
--fix report dependencies
exec dbo.procRESQLReportRegisteredAttributeFixReferences '00000000-0000-0000-0000-000000000000', @refAttributes, @oldName, @newName, @DataViewGUID
GO
---------------------------------------------
-- dbo.procRefreshViews
CREATE procedure [dbo].[procRefreshViews] as
DECLARE @tables NVARCHAR(4000)
DECLARE @view SYSNAME
DECLARE @sql NVARCHAR(500)
SET @tables = NULL
SET @sql = N'EXEC sp_refreshView '
DECLARE viewCsr CURSOR READ_ONLY FAST_FORWARD FOR
SELECT
v.SchemaName + '.[' + v.ObjectName + ']'
FROM
dbo.viewSysViews v
WHERE
v.ObjectName NOT LIKE 'sys%'
and v.ObjectName not like 'viewS3%'
and v.ObjectName != 'viewPlaceholders'
and v.ObjectName != 'viewWFEntity'
and v.ObjectName not like 'viewWFReviewerAssignmentNoDelegates%'
and v.SchemaName != 'bak'
order by v.SchemaName, v.ObjectName
--AND @tables IS NULL
--OR CHARINDEX(OBJECT_NAME(vtu.table_name), N',' + @tables + N',') > 0
OPEN viewCsr
SELECT cast('' as varchar(255)) as viewName into #broken
FETCH NEXT FROM viewCsr INTO @view
WHILE @@FETCH_STATUS = 0
BEGIN
--PRINT @sql + @view
BEGIN TRY
EXEC(@sql + '''' + @view + '''')
END TRY
BEGIN CATCH
IF @@TRANCOUNT >= 1 ROLLBACK
INSERT INTO #broken (viewName) values (@view)
--print @@trancount
END CATCH
FETCH NEXT FROM viewCsr INTO @view
END
CLOSE viewCsr
DEALLOCATE viewCsr
truncate table RefreshViewsLog;
insert into RefreshViewsLog(BrokenViewName, BrokenViewDropSQL, BrokenViewSelectSQL)
select distinct
viewName as BrokenViewName,
'drop view ' + viewname as BrokenViewDropSQL,
'select top 1 * from ' + viewname as BrokenViewSelectSQL
from #broken where viewname <> ''
drop table #broken
select * from RefreshViewsLog
GO
---------------------------------------------
-- dbo.procReinitializeApplicationModes
CREATE proc [dbo].[procReinitializeApplicationModes]
AS
BEGIN
truncate table ApplicationMode
set identity_insert ApplicationMode ON;
insert into ApplicationMode (ApplicationModeID,Name) VALUES (0, 'No Access');
insert into ApplicationMode (ApplicationModeID,Name) VALUES (1, 'Simple Mode');
insert into ApplicationMode (ApplicationModeID,Name) VALUES (2, 'Advanced Mode');
insert into ApplicationMode (ApplicationModeID,Name) VALUES (3, 'Super User Mode');
set identity_insert ApplicationMode OFF;
END
GO
---------------------------------------------
-- dbo.procRemoveController
CREATE PROCEDURE [dbo].[procRemoveController]
@ControllerID as uniqueidentifier
AS
DELETE FROM dbo.ActiveControllers WHERE ControllerID=@ControllerID
GO
---------------------------------------------
-- dbo.procRemoveOrphanedMappingsAndDataByDimension
-- =================================================================================
-- Author: Graydon Foreman
-- Create date: Oct 29, 2007
-- Description: Removes mappings and data associated with deleted members
-- =================================================================================
CREATE PROCEDURE [dbo].[procRemoveOrphanedMappingsAndDataByDimension]
@DIMENSIONGUID as uniqueidentifier,
@debug bit = 0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @FillInDimensionGUID uniqueidentifier
SELECT @FillInDimensionGUID = FillInDimensionGUID FROM SecureList WHERE ListGUID = @DimensionGUID
IF @FillInDimensionGUID = '00000000-0000-0000-0000-000000000000' BEGIN
SET @FillInDimensionGUID = @DimensionGUID
END
--------------------------
-- Mapping Removal
--------------------------
DECLARE @MappingTable nvarchar(256)
DECLARE @mapsql nvarchar(4000)
-- Find all dynamic mapping tables
DECLARE zzMapTable CURSOR LOCAL FAST_FORWARD
FOR SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE 'zzEMFModelTemplateMapping%' AND COLUMN_NAME = dbo.GetSQLColumnSafeGuid(@DIMENSIONGUID)
OPEN zzMapTable
FETCH NEXT FROM zzMapTable INTO @MappingTable
-- Delete this member from mapping tables
WHILE @@FETCH_STATUS = 0
BEGIN
IF @debug = 1 BEGIN
SET @mapsql = 'SELECT * FROM '
END ELSE BEGIN
SET @mapsql = 'DELETE FROM '
END
SET @mapsql = @mapsql + @MappingTable + ' WHERE ' + dbo.GetSQLColumnSafeGuid(@DIMENSIONGUID) + ' != ''00000000-0000-0000-0000-000000000000'' AND ' + dbo.GetSQLColumnSafeGuid(@DIMENSIONGUID) + ' NOT IN(SELECT LISTMEMBERGUID FROM SecureListMember WHERE LISTGUID = ''' + cast(@DimensionGUID as nvarchar(36)) + ''')'
EXECUTE (@mapsql)
FETCH NEXT FROM zzMapTable INTO @MappingTable
END
CLOSE zzMapTable
DEALLOCATE zzMapTable
--------------------------
-- Data Removal
--------------------------
DECLARE @DataTable nvarchar(256)
DECLARE @datasql nvarchar(4000)
-- Find all dynamic data tables
DECLARE zzDataTable CURSOR LOCAL FAST_FORWARD
FOR SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE 'zzEMFModelData%' AND COLUMN_NAME = dbo.GetSQLColumnSafeGuid(@DIMENSIONGUID)
OPEN zzDataTable
FETCH NEXT FROM zzDataTable INTO @DataTable
-- Delete this member from data tables
WHILE @@FETCH_STATUS = 0
BEGIN
IF @debug = 1 BEGIN
SET @datasql = 'SELECT * FROM '
END ELSE BEGIN
SET @datasql = 'DELETE FROM '
END
SET @datasql = @datasql + @DataTable + ' WHERE ' + dbo.GetSQLColumnSafeGuid(@DIMENSIONGUID) + ' != ''00000000-0000-0000-0000-000000000000'' AND ' + dbo.GetSQLColumnSafeGuid(@DIMENSIONGUID) + ' NOT IN(SELECT LISTMEMBERGUID FROM SecureListMember WHERE LISTGUID = ''' + cast(@FillInDimensionGUID as nvarchar(36)) + ''')'
EXECUTE (@datasql)
FETCH NEXT FROM zzDataTable INTO @DataTable
END
CLOSE zzDataTable
DEALLOCATE zzDataTable
END
GO
---------------------------------------------
-- dbo.procRemoveOrphanedZZTables
CREATE proc [dbo].[procRemoveOrphanedZZTables] as
declare crsMDTables CURSOR FOR
select name from sysobjects where name like 'zzEMF%' order by name
open crsMDTables;
DECLARE @tableName as varchar(100)
DECLARE @mdcguid uniqueidentifier
DECLARE @guidstring varchar(36)
DECLARE @guidstart int
DECLARE @cnt int
FETCH NEXT FROM crsMDTables into @tableName
WHILE (@@FETCH_STATUS = 0) BEGIN
SET @guidstart = charindex('_',@tableName)
SET @guidstring = replace(right(@tablename,len(@tablename) - @guidstart),'_','-')
SET @mdcguid = @guidstring
SELECT @cnt = count(*) FROM EMFModelDataConfig where modeldataconfigguid = @mdcguid
if @cnt = 0 begin
print 'drop table ' + @tableName
end
FETCH NEXT FROM crsMDTables into @tableName
END
close crsMDTables
DEALLOCATE crsMDTables
GO
---------------------------------------------
-- dbo.procRemoveScoreDataTables
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
CREATE PROCEDURE dbo.procRemoveScoreDataTables
@SchemaName varchar(64)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
Declare @SQL varchar(8000)
Declare @tblname varchar(128)
Declare crs_tblname Cursor LOCAL Forward_Only For SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @SchemaName
OPEN crs_tblname;
FETCH NEXT FROM crs_tblname into @tblname;
WHILE (@@FETCH_STATUS = 0)
BEGIN
Set @SQL = 'drop table ' + @schemaname + '.' + @tblname
print 'Dropping table ' + @schemaname + '.' + @tblname
exec (@sql)
exec (@sql) --drop again in case there are foreign keys that errored
FETCH NEXT FROM crs_tblname into @tblname;
END
CLOSE crs_tblname;
DEALLOCATE crs_tblname;
END
GO
---------------------------------------------
-- dbo.procRemoveWorkerFromActiveController
CREATE PROCEDURE [dbo].[procRemoveWorkerFromActiveController]
@ControllerID as uniqueidentifier,
@WorkerID as uniqueidentifier
AS
IF ((select count(*) from [dbo].[ActiveControllers] where ControllerID=@ControllerID AND WorkerID=@WorkerID) > 0)
BEGIN
DELETE FROM [dbo].[ActiveControllers] WHERE ControllerID=@ControllerID AND WorkerID=@WorkerID
END
GO
---------------------------------------------
-- dbo.procReportCopyClientReport
create proc [dbo].[procReportCopyClientReport]
@sourcedbname nvarchar(max),
@reportguid uniqueidentifier
as
set nocount on
exec procReportCopyClientReportXDB @sourcedbname, @reportguid
GO
---------------------------------------------
-- dbo.procReportCopyClientReportXDB
CREATE proc [dbo].[procReportCopyClientReportXDB]
@sourcedb nvarchar(100),
@reportGUID uniqueidentifier,
@toFolderGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@debug bit = 0
as
declare @reportGUIDStr nvarchar(36) = cast(@reportGUID as nvarchar(36))
if(@reportGUID = '00000000-0000-0000-0000-000000000000') begin
RAISERROR ('Report Name cannot be blank.', 18, 0)
return
end
if (select COUNT(*) from REReport where ReportGUID=@reportGUID) = 1 begin
print 'Report ' + @reportGUIDStr + ' already exists.'
return
end
declare @isExecuting bit
if(@debug = 1) begin
set @isExecuting = 0
end else begin
set @isExecuting = 1
end
--put fields in root folder if no folder specified
declare @folderguid uniqueidentifier
if(@toFolderGUID = '00000000-0000-0000-0000-000000000000') begin
select @folderguid = RootFolderGUID from FolderSet where Type = 4
end else begin
set @folderguid = @toFolderGUID
end
declare @whereReport nvarchar(4000) = 'ReportGUID = ''' + @reportGUIDStr + ''''
declare @whereSection nvarchar(4000) = 'ClientReportSectionGUID in(select l.ClientReportSectionGUID from ' + @sourcedb + '.dbo.REClientReportSectionLink l where l.' + @whereReport + ')'
--copy dataview
declare @whereDataView nvarchar(4000) = 'DataViewGUID in (select DataSourceGUID from ' + @sourcedb + '.dbo.REClientReportDataSourceLink s where s.reportguid = ''' + CAST(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'DataView', @whereDataView, @isExecuting
--setup default security for DataVie
insert into S3SimplePermission(PermissionGUID, LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select NEWID(), DataViewGUID, '00000000-0000-0000-0000-000000000001', cast(1 as bit), cast(1 as bit), cast(1 as bit)
from DataView where DataViewGUID not in(select sp.LootID from S3SimplePermission sp)
--copy registered dimensions
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RESqlReportRegisteredDimension', @whereDataView, @isExecuting
--copy registered attributes
declare @whereRegisteredAttribute nvarchar(4000) = 'RegisteredDimensionGUID in (select registereddimensionguid from ' + @sourcedb + '.dbo.resqlreportregistereddimension where ' + @whereDataView + ')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RESQLReportRegisteredAttribute', @whereRegisteredAttribute, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REReport', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REClientReportSetup', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REClientReportSection', @whereSection, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REClientReportSectionLink', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REClientReportConditionalFormat', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REClientReportDataSourceLink', @whereReport, @isExecuting, 0, 0, 0
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REClientReportParameter', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REClientReportCalculation', @whereSection, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REClientReportSectionAttribute', @whereSection, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REClientReportSectionMeasure', @whereSection, @isExecuting
--for reports that now don't have a valid folder, move to specified folder
if(@isExecuting = 1) begin
update REReport set FolderGUID = @folderguid where FolderGUID not in(select f.FolderGUID from Folder f)
end else begin
print 'update REReport set FolderGUID = ''' + cast(@folderguid as nvarchar(36)) + ''' where FolderGUID not in(select f.FolderGUID from Folder f)'
end
--setup default security
insert into S3SimplePermission(PermissionGUID, LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select NEWID(), ReportGUID, '00000000-0000-0000-0000-000000000001', cast(1 as bit), cast(1 as bit), cast(1 as bit)
from REReport where ReportGUID not in(select sp.LootID from S3SimplePermission sp)
GO
---------------------------------------------
-- dbo.procReportCopyCubeReport
-- =============================================
-- Author: Mitch and Jacky
-- Create date: Now
-- Description: Copies Cube Reports from any database to this one
-- =============================================
CREATE PROCEDURE [dbo].[procReportCopyCubeReport]
-- Add the parameters for the stored procedure here
@sourcedbname nvarchar(max),
@reportguid uniqueidentifier
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @sql as nvarchar(max)
set @sql =
'
declare @reportguid as uniqueidentifier
set @reportguid = ''' + cast(@reportGUID as nvarchar(128)) + '''
declare @reportSetupGUID as uniqueidentifier
set @reportsetupguid = (select top 1 Cubereportsetupguid from ' + @sourcedbname + '.[dbo].RECubeReportSetup where ReportGUID=@reportguid)
if @reportguid <> dbo.ZeroGUID() and (select COUNT(*) from REReport where ReportGUID=@reportguid) = 0 begin
-- copy report
insert into REReport
select * from
' + @sourcedbname + '.[dbo].REReport
where reportguid=@reportguid
-- copy report setup
insert into RECubeReportSetup
select * from
' + @sourcedbname + '.[dbo].RECubeReportSetup
where ReportGUID=@reportguid
-- copy Dimension
insert into RECubeReportDimension
select * from
' + @sourcedbname + '.[dbo].RECubeReportDimension
where CubeReportSetupGUID=@reportSetupGUID
-- copy dimension Levels
insert into RECubeReportLevel
select * from
' + @sourcedbname + '.[dbo].RECubeReportLevel
where CubeReportDimensionGUID in (Select cubereportdimensionguid from RECubeReportDimension where CubeReportSetupGUID = @reportSetupGUID)
-- copy Measure
insert into RECubeReportMeasure
select * from
' + @sourcedbname + '.[dbo].RECubeReportMeasure
where CubeReportSetupGUID=@reportSetupGUID
-- copy Parameters
insert into RECubeReportParameter
select * from
' + @sourcedbname + '.[dbo].RECubeReportParameter
where CubeReportSetupGUID=@reportSetupGUID
-- set security
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue) values (@reportguid, ''00000000-0000-0000-0000-000000000001'', 1, 1, 1)
end'
exec(@sql)
END
GO
---------------------------------------------
-- dbo.procReportCopyDSCubeReport
Create proc [dbo].[procReportCopyDSCubeReport]
@sourcedb nvarchar(100),
@reportGUID uniqueidentifier,
@toFolderGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@debug bit = 0
as
declare @reportGUIDStr nvarchar(36) = cast(@reportGUID as nvarchar(36))
if(@reportGUID = '00000000-0000-0000-0000-000000000000') begin
RAISERROR ('Report Name cannot be blank.', 18, 0)
return
end
if (select COUNT(*) from REReport where ReportGUID=@reportGUID) = 1 begin
print 'Report ' + @reportGUIDStr + ' already exists.'
return
end
declare @isExecuting bit
if(@debug = 1) begin
set @isExecuting = 0
end else begin
set @isExecuting = 1
end
--put fields in root folder if no folder specified
declare @folderguid uniqueidentifier
if(@toFolderGUID = '00000000-0000-0000-0000-000000000000') begin
select @folderguid = RootFolderGUID from FolderSet where Type = 4
end else begin
set @folderguid = @toFolderGUID
end
declare @whereReport nvarchar(4000) = 'ReportGUID = ''' + @reportGUIDStr + ''''
declare @whereSection nvarchar(4000) = 'DSCubeReportSectionGUID in(select l.DSCubeReportSectionGUID from ' + @sourcedb + '.dbo.REDSCubeReportSectionLink l where l.' + @whereReport + ')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REReport', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDSCubeReportSetup', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDSCubeReportSection', @whereSection, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDSCubeReportSectionLink', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDSCubeReportConditionalFormat', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDSCubeReportDataSourceLink', @whereReport, @isExecuting, 0, 0, 0
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDSCubeReportParameter', @whereReport, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDSCubeReportCalculation', @whereSection, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDSCubeReportSectionAttribute', @whereSection, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDSCubeReportSectionMeasure', @whereSection, @isExecuting
--for reports that now don't have a valid folder, move to specified folder
if(@isExecuting = 1) begin
update REReport set FolderGUID = @folderguid where FolderGUID not in(select f.FolderGUID from Folder f)
end else begin
print 'update REReport set FolderGUID = ''' + cast(@folderguid as nvarchar(36)) + ''' where FolderGUID not in(select f.FolderGUID from Folder f)'
end
--setup default security
insert into S3SimplePermission(PermissionGUID, LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select NEWID(), ReportGUID, '00000000-0000-0000-0000-000000000001', cast(1 as bit), cast(1 as bit), cast(1 as bit)
from REReport where ReportGUID not in(select sp.LootID from S3SimplePermission sp)
GO
---------------------------------------------
-- dbo.procReportCopyERReport
-- =============================================
-- Author: Mitch and Jacky
-- Create date: Now
-- Description: Copies Cube Reports from any database to this one
-- =============================================
CREATE PROCEDURE [dbo].[procReportCopyERReport]
-- Add the parameters for the stored procedure here
@sourcedbname nvarchar(max),
@reportguid uniqueidentifier
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
exec procReportCopyERXDB @sourcedbname, @reportguid
END
GO
---------------------------------------------
-- dbo.procReportCopyERXDB
CREATE proc [dbo].[procReportCopyERXDB]
@sourcedb nvarchar(100),
@reportGUID uniqueidentifier,
@toFolderGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@debug bit = 0
as
declare @whereClause nvarchar(4000)
if(@reportGUID = '00000000-0000-0000-0000-000000000000') begin
RAISERROR ('Report Name cannot be blank.', 18, 0)
return
end
declare @isExecuting bit
if(@debug = 1) begin
set @isExecuting = 0
end else begin
set @isExecuting = 1
end
--put fields in root folder if no folder specified
declare @folderguid uniqueidentifier
if(@toFolderGUID = '00000000-0000-0000-0000-000000000000') begin
select @folderguid = RootFolderGUID from FolderSet where Type = 4
end else begin
set @folderguid = @toFolderGUID
end
--copy report
set @whereClause = 'ReportGUID = ''' + cast(@reportGUID as nvarchar(36)) + ''''
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REReport', @whereClause, @isExecuting
-- Actual excel file
set @whereClause = 'fullpath = ''Reporting\VSTO Excel Reports\' + cast(@reportGUID as nvarchar(36)) + '.xls'''
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'DataPathFile_Reporting', @whereClause, @isExecuting
--copy the sheetconfigs
set @whereClause = 'ReportGUID = ''' + cast(@reportGUID as nvarchar(36)) + ''''
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'resheetconfig', @whereClause, @isExecuting
--copy the exconfigs from the sheet configs
set @whereClause = 'sheetguid in (select sheetguid from ' + @sourcedb + '.dbo.RESheetConfig where reportguid = ''' + cast(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'reexconfig', @whereClause, @isExecuting
--copy the exconfigfiltermembers from the sheet configs
set @whereClause = 'ExConfigGUID in (select ExConfigGUID from ' + @sourcedb + '.dbo.REExConfig ex inner join ' + @sourcedb + '.dbo.RESheetConfig sh on sh.SheetGUID = ex.SheetGUID where sh.reportguid = ''' + cast(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REExConfigFilterMembers', @whereClause, @isExecuting, 0, 0, 0
if(@isExecuting = 1) begin
update REReport set FolderGUID = @folderguid where FolderGUID not in(select FolderGUID from Folder)
end else begin
print 'update REReport set FolderGUID = ''' + cast(@folderguid as nvarchar(36)) + ''' where FolderGUID not in(select FolderGUID from Folder)'
end
--sql reports
declare @sql as nvarchar(max)
set @sql = '
declare @reportguid as uniqueidentifier
set @reportguid = ''' + cast(@reportGUID as nvarchar(36)) + '''
declare @csv nvarchar(max)
select @csv = coalesce(@csv + '','','''') + cast(sourceguid as nvarchar(128)) from ' + @sourcedb + '.[dbo].[redatasource] where reportguid = @reportguid and sourcetype = 6
declare @repsql as nvarchar(200)
set @repsql = ''procReportCopySQLXDB ''''' + @sourcedb + ''''', {guidq}, ''''00000000-0000-0000-0000-000000000000'''', ' + cast(@debug as nvarchar(1)) + '''
exec procRunForManyGUIDs @repsql, @csv, ' + cast(@isExecuting as nvarchar(1))
print ''
exec(@sql)
print ''
-- datasources
set @whereClause = 'ReportGUID = ''' + cast(@reportGUID as nvarchar(36)) + ''''
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REDataSource', @whereClause, @isExecuting
-- numbering parameter
set @whereClause = 'DatasourceGUID in (select datasourceguid from ' + @sourcedb + '.dbo.redatasource where reportguid = ''' + cast(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RENumberingParameter', @whereClause, @isExecuting
-- query parameter
set @whereClause = 'DatasourceGUID in (select datasourceguid from ' + @sourcedb + '.dbo.redatasource where reportguid = ''' + cast(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'requeryparameter', @whereClause, @isExecuting
-- sorting parameter
set @whereClause = 'DatasourceGUID in (select datasourceguid from ' + @sourcedb + '.dbo.redatasource where reportguid = ''' + cast(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'resortingparameter', @whereClause, @isExecuting
-- grouping parameters
set @whereClause = 'ReportGUID = ''' + cast(@reportGUID as nvarchar(36)) + ''''
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'regroupingparameter', @whereClause, @isExecuting
-- grouping parameter links
set @whereClause = 'groupingparameterguid in (select groupingparameterguid from ' + @sourcedb + '.dbo.regroupingparameter where reportguid = ''' + cast(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'regroupingparameterlink', @whereClause, @isExecuting
--setup default security
insert into S3SimplePermission(PermissionGUID, LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select NEWID(), ReportGUID, '00000000-0000-0000-0000-000000000001', cast(1 as bit), cast(1 as bit), cast(1 as bit)
from REReport where ReportGUID not in(select LootID from S3SimplePermission)
GO
---------------------------------------------
-- dbo.procReportCopyExtractReport
CREATE proc [dbo].[procReportCopyExtractReport]
@sourcedbname nvarchar(max),
@reportguid uniqueidentifier
as
set nocount on
exec procReportCopyExtractReportXDB @sourcedbname, @reportguid
GO
---------------------------------------------
-- dbo.procReportCopyExtractReportXDB
CREATE proc [dbo].[procReportCopyExtractReportXDB]
@sourcedb nvarchar(100),
@reportGUID uniqueidentifier,
@toFolderGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@debug bit = 0
AS
declare @reportGUIDStr nvarchar(36) = cast(@reportGUID as nvarchar(36))
if(@reportGUID = '00000000-0000-0000-0000-000000000000') begin
RAISERROR ('Report Name cannot be blank.', 18, 0)
return
end
if (select COUNT(*) from REReport where ReportGUID=@reportGUID) = 1 begin
print 'Report ' + @reportGUIDStr + ' already exists.'
return
end
exec procReportCopyClientReportXDB @sourcedb, @reportGUID, @toFolderGUID, @debug
declare @isExecuting bit
if(@debug = 1) begin
set @isExecuting = 0
end else begin
set @isExecuting = 1
end
declare @whereReport nvarchar(4000) = 'ReportGUID = ''' + @reportGUIDStr + ''''
declare @whereSection nvarchar(4000) = 'ClientReportSetupGUID in (select l.ClientReportSetupGUID from ' + @sourcedb + '.dbo.REClientReportSetup l where l.' + @whereReport + ')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REExtractReportOutputColumn', @whereSection, @isExecuting
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REExtractReportOutputFormat', @whereSection, @isExecuting
GO
---------------------------------------------
-- dbo.procReportCopyFileReport
CREATE proc [dbo].[procReportCopyFileReport]
@sourcedbname nvarchar(max),
@reportguid uniqueidentifier
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
exec procReportCopyFileXDB @sourcedbname, @reportguid
END
GO
---------------------------------------------
-- dbo.procReportCopyFileXDB
CREATE proc [dbo].[procReportCopyFileXDB]
@sourcedb nvarchar(100),
@reportGUID uniqueidentifier,
@toFolderGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@debug bit = 0
as
declare @whereClause nvarchar(4000)
if(@reportGUID = '00000000-0000-0000-0000-000000000000') begin
RAISERROR ('Report GUID cannot be blank.', 18, 0)
return
end
declare @isExecuting bit
if(@debug = 1) begin
set @isExecuting = 0
end else begin
set @isExecuting = 1
end
--put fields in root folder if no folder specified
declare @folderguid uniqueidentifier
if(@toFolderGUID = '00000000-0000-0000-0000-000000000000') begin
select @folderguid = RootFolderGUID from FolderSet where Type = 4
end else begin
set @folderguid = @toFolderGUID
end
--copy report
set @whereClause = 'ReportGUID = ''' + cast(@reportGUID as nvarchar(36)) + ''''
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REReport', @whereClause, @isExecuting
--copy report setup
declare @whereReportSetup nvarchar(4000) = 'FileReportSetupGUID in (select rs.filereportsetupguid from ' + @sourcedb + '.dbo.REFileReportSetup rs where rs.reportguid = ''' + cast(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REFileReportSetup', @whereReportSetup, @isExecuting
--actual file
set @whereClause = 'FileName like ''%' + cast(@reportGUID as nvarchar(36)) + '%'''
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'DataPathFile_Reporting', @whereClause, @isExecuting
--for reports that now don't have a valid folder, move to specified folder
if(@isExecuting = 1) begin
update REReport set FolderGUID = @folderguid where FolderGUID not in(select sf.FolderGUID from Folder sf)
end else begin
print 'update REReport set FolderGUID = ''' + cast(@folderguid as nvarchar(36)) + ''' where FolderGUID not in(select sf.FolderGUID from Folder sf)'
end
--setup default security
insert into S3SimplePermission(PermissionGUID, LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select NEWID(), ReportGUID, '00000000-0000-0000-0000-000000000001', cast(1 as bit), cast(1 as bit), cast(1 as bit)
from REReport where ReportGUID not in(select p.LootID from S3SimplePermission p)
GO
---------------------------------------------
-- dbo.procReportCopyMDReport
CREATE PROCEDURE [dbo].[procReportCopyMDReport]
-- Add the parameters for the stored procedure here
@sourcedbname nvarchar(max),
@reportguid uniqueidentifier
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
exec procReportCopyMDXDB @sourcedbname, @reportguid
END
GO
---------------------------------------------
-- dbo.procReportCopyMDXDB
create PROCEDURE [dbo].[procReportCopyMDXDB]
@sourcedb nvarchar(100),
@reportGUID uniqueidentifier,
@toFolderGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@debug bit = 0
as
declare @reportGUIDStr nvarchar(36) = cast(@reportGUID as nvarchar(36))
if(@reportGUID = '00000000-0000-0000-0000-000000000000') begin
RAISERROR ('Report Name cannot be blank.', 18, 0)
return
end
if (select COUNT(*) from REReport where ReportGUID=@reportGUID) = 1 begin
print 'Report ' + @reportGUIDStr + ' already exists.'
return
end
declare @isExecuting bit
if(@debug = 1) begin
set @isExecuting = 0
end else begin
set @isExecuting = 1
end
--put fields in root folder if no folder specified
declare @folderguid uniqueidentifier
if(@toFolderGUID = '00000000-0000-0000-0000-000000000000') begin
select @folderguid = RootFolderGUID from FolderSet where Type = 4
end else begin
set @folderguid = @toFolderGUID
end
--copy report
declare @whereReport nvarchar(4000) = 'ReportGUID = ''' + @reportGUIDStr + ''''
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REReport', @whereReport, @isExecuting
--copy report setup
declare @whereReportSetup nvarchar(4000) = 'ModelDataReportSetupGUID in (select rs.modeldatareportsetupguid from ' + @sourcedb + '.dbo.REModelDataReportSetup rs where rs.reportguid = ''' + cast(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REModelDataReportSetup', @whereReportSetup, @isExecuting
--setup default security
insert into S3SimplePermission(PermissionGUID, LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select NEWID(), ReportGUID, '00000000-0000-0000-0000-000000000001', cast(1 as bit), cast(1 as bit), cast(1 as bit)
from REReport where ReportGUID not in(select LootID from S3SimplePermission)
GO
---------------------------------------------
-- dbo.procReportCopyReport
CREATE PROCEDURE [dbo].[procReportCopyReport]
@ReportGUID as UniqueIdentifier,
@SourceDBName as nvarchar(max)
AS
BEGIN
SET NOCOUNT ON;
declare @sql as nvarchar(max)
set @sql = '
declare @reporttype nvarchar(max)
select top 1 @reporttype = AssemblyQualifiedName from ' + @SourceDBName + '.[dbo].[rereport] where ReportGUID = ''' + Cast(@ReportGUID as Nvarchar(max)) + '''
if @reporttype like ''Strata.Reporting.ExcelReporter%''
begin
exec [procReportCopyERReport] ''' + @SourceDBName + ''', ''' + Cast(@ReportGUID as Nvarchar(max)) + '''
end
else if @reporttype like ''Strata.CubeReporter%''
begin
exec [procReportCopyCubeReport] ''' + @SourceDBName + ''', ''' + Cast(@ReportGUID as Nvarchar(max)) + '''
end
else if @reporttype like ''Strata.X.Biz.Reporting.SQLReport%''
begin
exec [procReportCopySQLReport] ''' + @SourceDBName + ''', ''' + Cast(@ReportGUID as Nvarchar(max)) + '''
end
else if @reporttype like ''Strata.X.Biz.Reporting.ModelDataReport%''
begin
exec [procReportCopyMDReport] ''' + @SourceDBName + ''', ''' + Cast(@ReportGUID as Nvarchar(max)) + '''
end
else if @reporttype like ''Strata.X.Biz.Reporting.FileReport%''
begin
exec [procReportCopyFileReport] ''' + @SourceDBName + ''', ''' + Cast(@ReportGUID as Nvarchar(max)) + '''
end
else if @reporttype like ''Strata.CS.Jazz.Biz.Reporting.ClientReport%''
begin
exec [procReportCopyClientReport] ''' + @SourceDBName + ''', ''' + Cast(@ReportGUID as Nvarchar(max)) + '''
end
else if @reporttype like ''Strata.CS.Jazz.Biz.Reporting.DSCubeReport%''
begin
exec [procReportCopyDSCubeReport] ''' + @SourceDBName + ''', ''' + Cast(@ReportGUID as Nvarchar(max)) + '''
end
'
exec (@sql)
end
GO
---------------------------------------------
-- dbo.procReportCopySQLReport
-- =============================================
-- Author: Mitch and Jacky
-- Create date: Now
-- Description: Copies Cube Reports from any database to this one
-- =============================================
CREATE PROCEDURE [dbo].[procReportCopySQLReport]
-- Add the parameters for the stored procedure here
@sourcedbname nvarchar(max),
@reportguid uniqueidentifier
AS
BEGIN
exec procReportCopySQLXDB @sourcedbname, @reportguid
END
GO
---------------------------------------------
-- dbo.procReportCopySQLXDB
--Author: jchau
--Branch: Earwig
--Forward
CREATE proc [dbo].[procReportCopySQLXDB]
@sourcedb nvarchar(100),
@reportGUID uniqueidentifier,
@toFolderGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@debug bit = 0
as
declare @reportGUIDStr nvarchar(36) = cast(@reportGUID as nvarchar(36))
if(@reportGUID = '00000000-0000-0000-0000-000000000000') begin
RAISERROR ('Report Name cannot be blank.', 18, 0)
return
end
if (select COUNT(*) from REReport where ReportGUID=@reportGUID) = 1 begin
print 'Report ' + @reportGUIDStr + ' already exists.'
return
end
declare @isExecuting bit
if(@debug = 1) begin
set @isExecuting = 0
end else begin
set @isExecuting = 1
end
--put fields in root folder if no folder specified
declare @folderguid uniqueidentifier
if(@toFolderGUID = '00000000-0000-0000-0000-000000000000') begin
select @folderguid = RootFolderGUID from FolderSet where Type = 4
end else begin
set @folderguid = @toFolderGUID
end
--copy dataview
declare @whereDataView nvarchar(4000) = 'DataViewGUID in (select dataviewguid from ' + @sourcedb + '.dbo.resqlreportsetup s where s.reportguid = ''' + CAST(@reportGUID as nvarchar(36)) + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'DataView', @whereDataView, @isExecuting
--copy registered dimensions
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RESqlReportRegisteredDimension', @whereDataView, @isExecuting
--copy registered attributes
declare @whereRegisteredAttribute nvarchar(4000) = 'RegisteredDimensionGUID in (select registereddimensionguid from ' + @sourcedb + '.dbo.resqlreportregistereddimension where ' + @whereDataView + ')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RESQLReportRegisteredAttribute', @whereRegisteredAttribute, @isExecuting
--copy report
declare @whereReport nvarchar(4000) = 'ReportGUID = ''' + @reportGUIDStr + ''''
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'REReport', @whereReport, @isExecuting
--copy report setup
declare @whereReportSetup nvarchar(4000) = 'SQLReportSetupGUID in (select sqlreportsetupguid from ' + @sourcedb + '.dbo.resqlreportsetup where reportguid = ''' + @reportGUIDStr + ''')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RESQLReportSetup', @whereReportSetup, @isExecuting
--copy display columns
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RESQLReportDisplayColumn', @whereReportSetup, @isExecuting
--copy filter columns
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RESQLReportFilterColumn', @whereReportSetup, @isExecuting
--copy pivot columns
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RESQLReportPivotColumn', @whereReportSetup, @isExecuting
--copy pivot column filters
declare @wherePivotColumnFilter nvarchar(4000) = 'PivotColumnGUID in (select PivotColumnGUID from ' + @sourcedb + '.dbo.RESQLReportPivotColumn where ' + @whereReportSetup + ')'
exec procMigrateScriptGetByTable 'dbo', @sourcedb, 'RESQLReportPivotColumnFilter', @wherePivotColumnFilter, @isExecuting
--for reports that now don't have a valid folder, move to specified folder
if(@isExecuting = 1) begin
update REReport set FolderGUID = @folderguid where FolderGUID not in(select FolderGUID from Folder)
end else begin
print 'update REReport set FolderGUID = ''' + cast(@folderguid as nvarchar(36)) + ''' where FolderGUID not in(select FolderGUID from Folder)'
end
--setup default security
insert into S3SimplePermission(PermissionGUID, LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select NEWID(), ReportGUID, '00000000-0000-0000-0000-000000000001', cast(1 as bit), cast(1 as bit), cast(1 as bit)
from REReport where ReportGUID not in(select LootID from S3SimplePermission)
RETURN
GO
---------------------------------------------
-- dbo.procReportCopySystemReport
-- =============================================
-- Author: Mitch and Jacky
-- Create date: Now
-- Description: Copies System Reports from any database to this one
-- =============================================
CREATE PROCEDURE [dbo].[procReportCopySystemReport]
-- Add the parameters for the stored procedure here
@sourcedbname nvarchar(max),
@reportguid uniqueidentifier
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @reportguidstring as nvarchar(128)
set @reportguidstring = cast(@reportGUID as nvarchar(128))
declare @where as nvarchar(max)
set @where = 'REPORTGUID = ''' + @reportguidstring + ''''
exec procMigrateScriptGetByTable 'dbo', @sourcedbname, 'REReport', @where, 1, 0, 0
declare @reportfilename as varchar(64)
set @reportfilename = (select 'ExReports\' + REPLACE(Name,' ','') from rereport where reportguid = @reportguid)
set @where = 'fullpath like (''' + @reportfilename + '%'')'
exec procMigrateScriptGetByTable 'dbo', @sourcedbname, 'datapathfile', @where, 1, 0, 0
set @where = 'reportguid = ''' + @reportguidstring + ''''
exec procMigrateScriptGetByTable 'dbo', @sourcedbname, 'REExReportSetup', @where, 1, 0, 0
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue) values (@reportguid, '00000000-0000-0000-0000-000000000001', 1, 1, 1)
exec procReportValidateFolderGUID @reportguid
END
GO
---------------------------------------------
-- dbo.procReportDebug
-- Fix Scripts
CREATE PROCEDURE [dbo].[procReportDebug]
@ReportGUID uniqueidentifier
AS
BEGIN
select R.AuthorFullName, R.Name, R.ReportGUID, R.DateCreated, R.DateLastModified from [dbo].REReport R
where ReportGUID = @ReportGUID
select Name, cast(parametervaluexml as xml) as [ParameterXML] from [dbo].regroupingparameter
where reportguid = @ReportGUID
select ds.Name as DataSourceName, r.Name as SQLReportName, r.ReportGUID as SQLReportGUID, dv.SQLViewName from [dbo].REDataSource ds
inner join [dbo].REReport r on ds.SourceGUID=r.ReportGUID
inner join [dbo].RESQLReportSetup rs on rs.ReportGUID=r.ReportGUID
inner join [dbo].DataView dv on dv.DataViewGUID = rs.DataViewGUID
where ds.ReportGUID=@reportguid
order by ds.Name
END
GO
---------------------------------------------
-- dbo.procReportDeleteERReport
CREATE PROCEDURE [dbo].[procReportDeleteERReport]
-- Add the parameters for the stored procedure here
@reportguid uniqueidentifier
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Excel File
delete from datapathfile_reporting where fullpath = 'Reporting\VSTO Excel Reports\' + convert(varchar(max), @reportguid) + '.xls'
-- ER Configs
delete from REExConfig where SheetGUID in (select SheetGUID from RESheetConfig where ReportGUID=@reportguid)
delete from RESheetConfig where ReportGUID=@reportguid
-- Parameters
delete from RENumberingParameter where DataSourceGUID in (select DataSourceGUID from REDataSource where ReportGUID=@reportguid)
delete from REQueryParameter where DataSourceGUID in (select DataSourceGUID from REDataSource where ReportGUID=@reportguid)
delete from RESortingParameter where DataSourceGUID in (select DataSourceGUID from REDataSource where ReportGUID=@reportguid)
delete from REGroupingParameterLink where GroupingParameterGUID in (select groupingparameterguid from regroupingparameter where reportguid = @reportguid)
delete from REGroupingParameter where ReportGUID=@reportguid
-- Data Sources
delete from REDataSource where ReportGUID=@reportguid
-- REReport
delete from REReport where ReportGUID=@reportguid
-- Remove orphaned datasources
exec procReportRemoveOrphanedERDatasources
print 'Success'
END
RETURN
GO
---------------------------------------------
-- dbo.procReportRemoveBatchReports
CREATE PROC dbo.[procReportRemoveBatchReports]
as
declare crsGUIDs_1 CURSOR FOR
select r.ReportGuid from REReport r where r.IsBatchReport = 1
open crsGUIDs_1;
-- Delete ER reports
declare @reportGuid uniqueidentifier
FETCH NEXT FROM crsGUIDs_1 into @reportGuid
WHILE (@@FETCH_STATUS = 0)
BEGIN
exec dbo.procReportDeleteERReport @reportGuid
FETCH NEXT FROM crsGUIDs_1 into @reportGuid
END
close crsGUIDs_1;
DEALLOCATE crsGUIDs_1;
GO
---------------------------------------------
-- dbo.procReportRemoveCachedReportsByPlan
CREATE PROCEDURE [dbo].[procReportRemoveCachedReportsByPlan]
@planguid as uniqueidentifier
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Remove any cached reports tied to that plan
delete from RECachedReport where Identifier like '%' + CAST(@planguid as varchar(36)) + '%'
END
RETURN
GO
---------------------------------------------
-- dbo.procReportRemoveCachedReportsByPlanType
CREATE PROCEDURE [dbo].[procReportRemoveCachedReportsByPlanType]
@plantypeguid as uniqueidentifier
AS
BEGIN
SET NOCOUNT ON
--GET ALL THE PLANGUIDS from the plantype
declare crsGUIDs CURSOR FOR
select PLANGUID
from XPlan WHERE PlanTypeGUID = @plantypeguid
open crsGUIDs;
-- Loop through them and remove for each planguid with the
--Remove Cached reports by plan
declare @guid uniqueidentifier
FETCH NEXT FROM crsGUIDs into @guid
WHILE (@@FETCH_STATUS = 0)
BEGIN
exec procReportRemoveCachedReportsByPlan @guid
FETCH NEXT FROM crsGUIDs into @guid
END
END
Deallocate crsGUIDs
GO
---------------------------------------------
-- dbo.procReportRemoveCachedReportsByReport
-- =============================================
-- Author: Jacky
-- Create date: Now
-- Description: Remove cached reports with missing reportguids and stale datapathfile for missing cached reports
-- =============================================
CREATE PROCEDURE [dbo].[procReportRemoveCachedReportsByReport]
@reportguid as uniqueidentifier
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Remove any cached reports tied to that plan
delete from RECachedReport where ReportGUID=@reportguid
-- Remove any datapath file with missing cached reports
delete from DataPathFile where FullPath like 'Reporting\Cached Reports\%' and cast(LEFT(filename, 36) as uniqueidentifier) not in (select cachedreportguid from RECachedReport)
END
GO
---------------------------------------------
-- dbo.procReportRemoveOrphanedCachedReports
-- =============================================
-- Author: Jacky
-- Create date: Now
-- Description: Remove cached reports with missing reportguids and stale datapathfile for missing cached reports
-- =============================================
CREATE PROCEDURE [dbo].[procReportRemoveOrphanedCachedReports]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Remove any cached reports with missing report guids
delete from RECachedReport where ReportGUID not in (select ReportGUID from REReport)
-- rolling delete of datapath file
CREATE TABLE #LogDeleted (fileGUID uniqueidentifier);
WHILE (1 = 1)
BEGIN
DELETE top (1000) DataPathFile_Reporting
OUTPUT deleted.FileGUID into #LogDeleted
FROM DataPathFile_Reporting TH
WHERE TH.FullPath like 'Reporting\Cached Reports\%' and cast(LEFT(TH.filename, 36) as uniqueidentifier) not in (select cachedreportguid from RECachedReport)
if ((select COUNT(*) from #LogDeleted) = 0)
BEGIN
BREAK;
END
delete from #LogDeleted;
END
DROP TABLE #LogDeleted;
END
RETURN
GO
---------------------------------------------
-- dbo.procReportRemoveOrphanedDataPathFiles
CREATE PROC dbo.procReportRemoveOrphanedDataPathFiles
AS
delete from datapathfile_reporting
where FileName like '%.xls' and FileName not in (select CAST(reportguid as nvarchar(36)) + '.xls' from REReport)
delete from datapathfile_reporting
where FileName like '%.pdf' and FileName not in (select CAST(reportguid as nvarchar(36)) + '.pdf' from REReport)
exec dbo.procReportRemoveOrphanedCachedReports
GO
---------------------------------------------
-- dbo.procReportRemoveOrphanedERDatasources
-- =================================================================================
-- Author: Jacky Chau
-- Create date: December 14, 2009
-- Description: Removes orphaned ER datasource SQL reports
-- =================================================================================
CREATE PROC [dbo].[procReportRemoveOrphanedERDatasources] AS
set nocount on;
declare @count int
select
distinct RE.ReportGUID as rguid
into #orphans
from
REReport RE
left join REDataSource DS on DS.SourceGUID=RE.ReportGUID
where
RE.IsDataSource=1 and DS.ReportGUID is null
delete from REReport where ReportGUID in(select rguid from #orphans)
select @count = count(*) from #orphans
drop table #orphans
print cast(@count as varchar(12)) + ' reports removed'
GO
---------------------------------------------
-- dbo.procReportValidateFolderGUID
-- =============================================
-- Author: Mitch
-- checks to see if the reports folder guid exists if it does do nothing
-- if it doesnt place in the root reports folder '62D99FB1-12A2-4BE7-8D1D-92B60A181FA3'
-- =============================================
CREATE PROCEDURE [dbo].[procReportValidateFolderGUID]
@reportguid AS uniqueidentifier
AS
BEGIN
declare @folderguid as uniqueidentifier
select @folderguid = FolderGUID from REReport where ReportGUID = @reportguid
if (select COUNT(*) from Folder where FolderGuid = @folderguid) = 0
begin
update REReport SET FolderGUID = (SELECT TOP 1 RootFolderGUID from FolderSet where Type = 4) WHERE ReportGUID = @reportguid
end
END
GO
---------------------------------------------
-- dbo.procRollingDeleteNoTruncateOnTable
CREATE PROC [dbo].[procRollingDeleteNoTruncateOnTable]
@tableSchema nvarchar(128),
@tableName nvarchar(128),
@identityColumn nvarchar(128), --SHOULD Be RowID 95% of the time
@fromClause nvarchar(max),
@whereClause nvarchar(max),
@deleteRecordCount int,
@isPrintingStatement bit = 1,
@identityTableAlias nvarchar(128) = ''
AS
/**** The stored procedure is created based on dbo.procRollingDeleteOnTable ****/
/**************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2022-09-20 KF JAZZ-6746 JAZZ-36879 PR\\Metrics Definition: communication failure error when deleting many metrics with related pi.factmetric data
*************************************************************/
IF (@fromClause is null or @fromClause = '')
BEGIN
raiserror( 'FROM CLAUSE IS EMPTY ', 0, 1) WITH NOWAIT;
RETURN
END
IF (@deleteRecordCount <= 0)
BEGIN
raiserror( 'ERROR: Delete Record Count is Less than or equal to zero ', 0, 1) WITH NOWAIT;
RETURN
END
-- GET THE IDENTITY TYPE
DECLARE @sqlType int, @maxlength int, @precision int, @scale int
select
@sqlType = c.system_type_id, @maxlength = c.max_length, @precision = c.precision, @scale = c.scale
from sys.columns c
inner join sys.objects o ON o.object_id = c.object_id
inner join sys.schemas s ON s.schema_id = o.schema_id
WHERE s.name = @tableSchema AND o.name = @tableName AND c.name = @identityColumn
declare @sqlStringType nvarchar(128)
SET @sqlStringType = dbo.GetSQLFullyQualifiedType(@sqlType, @maxlength, @precision, @scale)
DECLARE @idcol nvarchar(128)
SET @idcol = 'id' + REPLACE(CAST(newid() as NVARCHAR(120)), '-', '') --replace guid with no dashes and start the table name with a 'g'
DECLARE @tempTable nvarchar(128)
SET @tempTable = '[data].RollingDelete' + @tableName + 'g' + REPLACE(CAST(newid() as NVARCHAR(120)), '-', '') --replace guid with no dashes and start the table name with a 'g'
--CREATE THE SQL STATEMENT
DECLARE @sql as NVARCHAR(MAX)
SET @sql =
'
DECLARE @start BIGINT;
DECLARE @end BIGINT;
DECLARE @step BIGINT;
'
IF @identityTableAlias <> ''
BEGIN
Set @identityTableAlias = @identityTableAlias + '.';
END
SET @sql = @sql + '
CREATE TABLE ' + @tempTable + '
(
' + @idcol + ' bigint identity(1,1),
' + @identityColumn + ' ' + @sqlStringType + ' --lookup type
)
WITH (DATA_COMPRESSION = PAGE)
CREATE CLUSTERED INDEX IX_' + @idcol + '_ID_IDENTITY
ON '+ @tempTable + '(' + @idcol + ', ' + @identityColumn + ');
SELECT @start = MIN(' + @identityTableAlias + @identityColumn + '), @end = MAX(' + @identityTableAlias + @identityColumn + ')
FROM ' + @FROMCLAUSE
IF NOT( @whereClause is null or @whereClause = '')
BEGIN
SET @sql = @sql + ' WHERE ' + @whereclause
END
SET @sql = @sql + '
WHILE (@start <= @end)
BEGIN
SET @step = @start + 499999;
If @step > @end
BEGIN
SET @step = @end;
END
INSERT INTO ' + @tempTable + '
SELECT ' + @identityTableAlias + @identityColumn + '
FROM ' + @FROMCLAUSE
IF NOT( @whereClause is null or @whereClause = '')
BEGIN
SET @sql = @sql + ' WHERE ' + @whereclause + ' and ' + @identityTableAlias + @identityColumn + ' BETWEEN @start AND @step '
END
ELSE
BEGIN
SET @sql = @sql + ' WHERE ' + @identityTableAlias + @identityColumn + ' BETWEEN @start AND @step '
END
SET @sql = @sql + '
SET @start = @start + 500000;
END
'
SET @sql = @sql + '
raiserror( ''Starting standard delete path on: ' + @tableSchema + '.' + @tableName + ''' , 0, 1) WITH NOWAIT;
DECLARE
@maxid AS BIGINT
,@currentid BIGINT
,@nowAsString varchar(30)
select @currentid = 1
select @maxid=max(' + @idcol + ' ) FROM ' + @tempTable + '
while @currentid<=@maxid
begin
set @nowAsString = convert( varchar(30), getdate(), 121 );
raiserror( ''@currentid %I64d at %s...'', 0, 1, @currentid, @nowAsString ) WITH NOWAIT ;
DELETE TN FROM ' + @tableSchema + '.' + @tableName + ' TN
INNER JOIN '+ @tempTable + ' DT ON DT.' + @identityColumn + ' = TN.' + @identityColumn + ' AND DT.' + @idcol + ' BETWEEN @currentid AND @currentid + ' + CAST(@deleteRecordCount AS NVARCHAR(10)) + '
SET @currentid = @currentid + ' + CAST(@deleteRecordCount AS NVARCHAR(10)) + ' + 1
END
raiserror( ''Finished delete on: ' + @tableSchema + '.' + @tableName + ''' , 0, 1) WITH NOWAIT;
DROP TABLE ' + @tempTable + '
'
IF @isPrintingStatement = 1
BEGIN
PRINT (cast(@sql as ntext));
END
ElSE
BEGIN
EXEC (@sql);
END
GO
---------------------------------------------
-- dbo.procRollingDeleteOnTable
CREATE PROC [dbo].[procRollingDeleteOnTable]
@tableSchema nvarchar(128),
@tableName nvarchar(128),
@identityColumn nvarchar(128), --SHOULD Be RowID 95% of the time
@fromClause nvarchar(max),
@whereClause nvarchar(max),
@deleteRecordCount int,
@truncateThreshold decimal(4, 3),
@isPrintingStatement bit = 1,
@identityTableAlias nvarchar(128) = ''
AS
IF (@fromClause is null or @fromClause = '')
BEGIN
raiserror( 'FROM CLAUSE IS EMPTY ', 0, 1) WITH NOWAIT;
RETURN
END
IF (@deleteRecordCount <= 0)
BEGIN
raiserror( 'ERROR: Delete Record Count is Less than or equal to zero ', 0, 1) WITH NOWAIT;
RETURN
END
-- GET THE IDENTITY TYPE
DECLARE @sqlType int, @maxlength int, @precision int, @scale int
select
@sqlType = c.system_type_id, @maxlength = c.max_length, @precision = c.precision, @scale = c.scale
from sys.columns c
inner join sys.objects o ON o.object_id = c.object_id
inner join sys.schemas s ON s.schema_id = o.schema_id
WHERE s.name = @tableSchema AND o.name = @tableName AND c.name = @identityColumn
declare @sqlStringType nvarchar(128)
SET @sqlStringType = dbo.GetSQLFullyQualifiedType(@sqlType, @maxlength, @precision, @scale)
DECLARE @idcol nvarchar(128)
SET @idcol = 'id' + REPLACE(CAST(newid() as NVARCHAR(120)), '-', '') --replace guid with no dashes and start the table name with a 'g'
DECLARE @tempTable nvarchar(128)
SET @tempTable = '[data].RollingDelete' + @tableName + 'g' + REPLACE(CAST(newid() as NVARCHAR(120)), '-', '') --replace guid with no dashes and start the table name with a 'g'
--CREATE THE SQL STATEMENT
DECLARE @sql as NVARCHAR(MAX)
SET @sql =
'
DECLARE @start BIGINT;
DECLARE @end BIGINT;
DECLARE @step BIGINT;
DECLARE @filteredRecordCount FLOAT
SELECT @filteredRecordCount = COUNT(1)
FROM ' + @FROMCLAUSE + '
'
IF NOT( @whereClause is null or @whereClause = '')
BEGIN
SET @sql = @sql + 'WHERE ' + @whereclause
END
IF @identityTableAlias <> ''
BEGIN
Set @identityTableAlias = @identityTableAlias + '.';
END
SET @sql = @sql + '
DECLARE @unfilteredRecordCount bigint
SELECT @unfilteredRecordCount = row_count from sys.dm_db_partition_stats ps where ps.object_id=object_id(''' + @tableSchema + '.' + @tableName + ''') and ps.index_id < 2
--Just TRUNCATE THE TABLE
IF (@filteredRecordCount = @unfilteredRecordCount)
BEGIN
raiserror( ''TRUNCATING TABLE ' + @tableName + ''', 0, 1) WITH NOWAIT;
TRUNCATE TABLE ' + @tableSchema + '.' + @tableName + '
END
ELSE
BEGIN
CREATE TABLE ' + @tempTable + '
(
' + @idcol + ' bigint identity(1,1),
' + @identityColumn + ' ' + @sqlStringType + ' --lookup type
)
WITH (DATA_COMPRESSION = PAGE)
CREATE CLUSTERED INDEX IX_' + @idcol + '_ID_IDENTITY
ON '+ @tempTable + '(' + @idcol + ', ' + @identityColumn + ');
SELECT @start = MIN(' + @identityTableAlias + @identityColumn + '), @end = MAX(' + @identityTableAlias + @identityColumn + ')
FROM ' + @FROMCLAUSE
IF NOT( @whereClause is null or @whereClause = '')
BEGIN
SET @sql = @sql + ' WHERE ' + @whereclause
END
SET @sql = @sql + '
WHILE (@start <= @end)
BEGIN
SET @step = @start + 499999;
If @step > @end
BEGIN
SET @step = @end;
END
INSERT INTO ' + @tempTable + '
SELECT ' + @identityTableAlias + @identityColumn + '
FROM ' + @FROMCLAUSE
IF NOT( @whereClause is null or @whereClause = '')
BEGIN
SET @sql = @sql + ' WHERE ' + @whereclause + ' and ' + @identityTableAlias + @identityColumn + ' BETWEEN @start AND @step '
END
ELSE
BEGIN
SET @sql = @sql + ' WHERE ' + @identityTableAlias + @identityColumn + ' BETWEEN @start AND @step '
END
SET @sql = @sql + '
SET @start = @start + 500000;
END
'
DECLARE @truncateTableName NVARCHAR(120);
SET @truncateTableName = 'tempRollingDelete' + @tableName + REPLACE(REPLACE(REPLACE(convert(varchar, getdate(), 113), '-', '_'), ':', '_'), ' ', '_');
SET @sql = @sql + '
--Just TRUNCATE THE TABLE
IF (@filteredRecordCount = @unfilteredRecordCount)
BEGIN
raiserror( ''TRUNCATING TABLE '+ @tableName + ''', 0, 1) WITH NOWAIT;
TRUNCATE TABLE ' + @tableSchema + '.' + @tableName + '
END
ELSE
BEGIN
raiserror( ''Starting standard delete path on: ' + @tableSchema + '.' + @tableName + ''' , 0, 1) WITH NOWAIT;
DECLARE
@maxid AS BIGINT
,@currentid BIGINT
,@nowAsString varchar(30)
select @currentid = 1
select @maxid=max(' + @idcol + ' ) FROM ' + @tempTable + '
while @currentid<=@maxid
begin
set @nowAsString = convert( varchar(30), getdate(), 121 );
raiserror( ''@currentid %I64d at %s...'', 0, 1, @currentid, @nowAsString ) WITH NOWAIT ;
DELETE TN FROM ' + @tableSchema + '.' + @tableName + ' TN
INNER JOIN '+ @tempTable + ' DT ON DT.' + @identityColumn + ' = TN.' + @identityColumn + ' AND DT.' + @idcol + ' BETWEEN @currentid AND @currentid + ' + CAST(@deleteRecordCount AS NVARCHAR(10)) + '
SET @currentid = @currentid + ' + CAST(@deleteRecordCount AS NVARCHAR(10)) + ' + 1
END
raiserror( ''Finished delete on: ' + @tableSchema + '.' + @tableName + ''' , 0, 1) WITH NOWAIT;
END
DROP TABLE ' + @tempTable + '
END
'
IF @isPrintingStatement = 1
BEGIN
PRINT (cast(@sql as ntext));
END
ElSE
BEGIN
EXEC (@sql);
END
GO
---------------------------------------------
-- dbo.procRollingUpdateOnTable
CREATE PROCEDURE dbo.procRollingUpdateOnTable
@tableSchema nvarchar(128),
@tableName nvarchar(128),
@identityColumn nvarchar(128), --SHOULD RowID 95% of the time
@updateStatement nvarchar(max),
@fromClause nvarchar(max),
@whereClause nvarchar(max),
@updateRecordCount int,
@isPrintingStatement bit = 0
AS
IF (@updateRecordCount <= 0)
BEGIN
raiserror( 'ERROR: Delete Record Count is Less than or equal to zero ', 0, 1) WITH NOWAIT;
RETURN
END
-- GET THE IDENTITY TYPE
DECLARE @sqlType int, @maxlength int, @precision int, @scale int
select
@sqlType = c.system_type_id, @maxlength = c.max_length, @precision = c.precision, @scale = c.scale
from sys.columns c
inner join sys.objects o ON o.object_id = c.object_id
inner join sys.schemas s ON s.schema_id = o.schema_id
WHERE o.name = @tableName AND s.name = @tableSchema AND c.name = @identityColumn
declare @sqlStringType nvarchar(128)
SET @sqlStringType = dbo.GetSQLFullyQualifiedType(@sqlType, @maxlength, @precision, @scale)
DECLARE @idcol nvarchar(128)
SET @idcol = 'id' + REPLACE(CAST(newid() as NVARCHAR(120)), '-', '') --replace guid with no dashes and start the table name with a 'g'
--SET THE TEMP TABLE NAME
DECLARE @tempTable nvarchar(128)
SET @tempTable = '[data].' + [dbo].[GetSQLColumnSafeGuid](NEWID())
--CREATE THE SQL STATEMENT
DECLARE @sql as NVARCHAR(MAX)
SET @sql =
'
DECLARE @start BIGINT;
DECLARE @end BIGINT;
DECLARE @step BIGINT;
CREATE TABLE ' + @tempTable + '
(
' + @idcol + ' bigint identity(1,1),
' + @identityColumn + ' ' + @sqlStringType + ' --lookup type
)
WITH (DATA_COMPRESSION = PAGE)
CREATE CLUSTERED INDEX IX_' + @idcol + '_ID_IDENTITY
ON '+ @tempTable + '(' + @idcol + ', ' + @identityColumn + ');
SELECT @start = MIN(' + @identityColumn + '), @end = MAX(' + @identityColumn + ')
FROM ' + @FROMCLAUSE
IF NOT( @whereClause is null or @whereClause = '')
BEGIN
SET @sql = @sql + ' WHERE ' + @whereclause
END
SET @sql = @sql + '
WHILE (@start <= @end)
BEGIN
SET @step = @start + 499999;
If @step > @end
BEGIN
SET @step = @end;
END
INSERT INTO ' + @tempTable + '
SELECT ' + @identityColumn + '
FROM ' + @FROMCLAUSE
IF NOT( @whereClause is null or @whereClause = '')
BEGIN
SET @sql = @sql + ' WHERE ' + @whereclause + ' and ' + @identityColumn + ' BETWEEN @start AND @step '
END
ELSE
BEGIN
SET @sql = @sql + ' WHERE ' + @identityColumn + ' BETWEEN @start AND @step '
END
SET @sql = @sql + '
SET @start = @start + 500000;
END
'
SET @sql = @sql + '
DECLARE @filteredRecordCount bigint
SELECT @filteredRecordCount = COUNT(1) FROM ' + @tempTable + '
DECLARE @unfilteredRecordCount bigint
SELECT @unfilteredRecordCount = COUNT(1) FROM ' + @tableSchema + '.' + @tableName + ' (nolock)
DECLARE
@maxid AS BIGINT
,@currentid BIGINT
,@nowAsString varchar(30)
select @currentid = 1
select @maxid=max(' + @idcol + ') FROM ' + @tempTable + '
while @currentid<=@maxid
begin
set @nowAsString = convert( varchar(30), getdate(), 121 );
raiserror( ''@currentid %I64d at %s...'', 0, 1, @currentid, @nowAsString ) WITH NOWAIT ;
UPDATE ' + @tableSchema + '.' + @tableName + ' SET ' + @updateStatement + ' FROM ' + @tableSchema + '.' + @tableName + ' TN
INNER JOIN '+ @tempTable + ' DT ON DT.' + @identityColumn + ' = TN.' + @identityColumn + ' AND DT.' + @idcol + ' BETWEEN @currentid AND @currentid + ' + CAST(@updateRecordCount AS NVARCHAR(10)) + '
SET @currentid = @currentid + ' + CAST(@updateRecordCount AS NVARCHAR(10)) + ' + 1
END
DROP TABLE ' + @tempTable + '
'
IF @isPrintingStatement = 1
BEGIN
PRINT (@sql);
END
ElSE
BEGIN
EXEC (@sql);
END
GO
---------------------------------------------
-- dbo.procRollingUpdateOnTableWithEncounterID
CREATE PROC [dbo].[procRollingUpdateOnTableWithEncounterID]
@tableSchema nvarchar(128),
@tableName nvarchar(128),
@identityColumn nvarchar(128), --SHOULD RowID 95% of the time
@updateStatement nvarchar(max),
@fromClause nvarchar(max),
@whereClause nvarchar(max),
@tempTableAlias NVARCHAR(MAX),
@enounterIDTable NVARCHAR(MAX),
@updateRecordCount int,
@isPrintingStatement bit = 0,
@targetTableAlias NVARCHAR(100) = 'Target',
@encounterTableAlias NVARCHAR(100) = 'PE'
AS
IF (@updateRecordCount <= 0)
BEGIN
raiserror( 'ERROR: Delete Record Count is Less than or equal to zero ', 0, 1) WITH NOWAIT;
RETURN
END
-- GET THE IDENTITY TYPE
DECLARE @sqlType int, @maxlength int, @precision int, @scale int
select
@sqlType = c.system_type_id, @maxlength = c.max_length, @precision = c.precision, @scale = c.scale
from sys.columns c
inner join sys.objects o ON o.object_id = c.object_id
inner join sys.schemas s ON s.schema_id = o.schema_id
WHERE o.name = @tableName AND s.name = @tableSchema AND c.name = @identityColumn
declare @sqlStringType nvarchar(128)
SET @sqlStringType = dbo.GetSQLFullyQualifiedType(@sqlType, @maxlength, @precision, @scale)
DECLARE @idcol nvarchar(128)
SET @idcol = 'id' + REPLACE(CAST(newid() as NVARCHAR(120)), '-', '') --replace guid with no dashes and start the table name with a 'g'
--GET THE DATE
DECLARE @currDate datetime
SET @currDate = GETDATE()
DECLARE @currDateString nvarchar(60)
SET @currDateString = REPLACE(REPLACE(CAST(@currDate as NVARCHAR(50)), ' ', ''), ':', '')
DECLARE @tempTable nvarchar(128)
SET @tempTable = '[data].' + @currDateString
--CREATE THE SQL STATEMENT
DECLARE @sql as NVARCHAR(MAX)
SET @sql =
'
CREATE TABLE ' + @tempTable + '
(
' + @idcol + ' bigint identity(1,1),
' + @identityColumn + ' ' + @sqlStringType + ', --lookup type
EncounterID BIGINT
)
WITH (DATA_COMPRESSION = PAGE)
CREATE CLUSTERED INDEX IX_' + @idcol + '_ID_IDENTITY
ON '+ @tempTable + '(' + @idcol + ', ' + @identityColumn + ');
INSERT INTO ' + @tempTable + '
SELECT '+@targetTableAlias+'.' + @identityColumn + ', ' + @encounterTableAlias + '.EncounterID
FROM ' + @FROMCLAUSE + '
'
if NOT(@whereClause is null or @whereClause = '')
BEGIN
SET @sql = @sql + 'WHERE ' + @whereclause
END
SET @sql = @sql + '
DECLARE @filteredRecordCount bigint
SELECT @filteredRecordCount = COUNT(1) FROM ' + @tempTable + '
DECLARE @unfilteredRecordCount bigint
SELECT @unfilteredRecordCount = COUNT(1) FROM ' + @tableSchema + '.' + @tableName + ' (nolock)
DECLARE
@maxid AS BIGINT
,@currentid BIGINT
,@nowAsString varchar(30)
select @currentid = 1
select @maxid=max(' + @idcol + ') FROM ' + @tempTable + '
while @currentid<=@maxid
begin
set @nowAsString = convert( varchar(30), getdate(), 121 );
raiserror( ''@currentid %I64d at %s...'', 0, 1, @currentid, @nowAsString ) WITH NOWAIT ;
UPDATE ' + @tableSchema + '.' + @tableName + ' SET ' + @updateStatement + ' FROM ' + @tableSchema + '.' + @tableName + ' TN
INNER JOIN '+ @tempTable + ' '+ @tempTableAlias + ' ON '+ @tempTableAlias + '.' + @identityColumn + ' = TN.' + @identityColumn + ' AND '+ @tempTableAlias + '.' + @idcol + ' BETWEEN @currentid AND @currentid + ' + CAST(@updateRecordCount AS NVARCHAR(10)) + '
SET @currentid = @currentid + ' + CAST(@updateRecordCount AS NVARCHAR(10)) + ' + 1
END
DROP TABLE ' + @tempTable + '
'
IF @isPrintingStatement = 1
BEGIN
PRINT (@sql);
END
ElSE
BEGIN
EXEC (@sql);
END
GO
---------------------------------------------
-- dbo.procRunForManyGUIDs
CREATE proc procRunForManyGUIDs
@sql varchar(max)
, @guids varchar(max)
, @isExecuting bit
as
--set @guids = '47413A00-1994-4606-8948-2BDFEDAC1FB9,63A2935D-EDB8-4DAF-863F-677831C6AC4E'
--set @sql = 'print {guidq}'
--set @isExecuting = 1
declare crsGUIDs CURSOR FOR
select guid
from dbo.CSVGuidsToTable(@guids)
open crsGUIDs;
declare @sqli varchar(max)
declare @guid uniqueidentifier
FETCH NEXT FROM crsGUIDs into @guid
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @sqli = replace(
replace(@sql,'{guidq}','''' + cast(@guid as varchar(36)) + '''')
,'{guid}',cast(@guid as varchar(36)))
if @isExecuting = 1 begin
exec(@sqli)
end else begin
print @sqli
end
FETCH NEXT FROM crsGUIDs into @guid
END
close crsGUIDs;
DEALLOCATE crsGUIDs;
GO
---------------------------------------------
-- dbo.procRunForManyPlanGUIDsFromPlanType
CREATE proc [dbo].[procRunForManyPlanGUIDsFromPlanType]
@sql varchar(max)
, @plantypeguid uniqueidentifier
, @isExecuting bit
as
declare crsGUIDs CURSOR FOR
select planguid
from xplan where plantypeguid = @plantypeguid
open crsGUIDs;
declare @sqli varchar(max)
declare @guid uniqueidentifier
FETCH NEXT FROM crsGUIDs into @guid
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @sqli = replace(
replace(@sql,'{guidq}','''' + cast(@guid as varchar(36)) + '''')
,'{guid}',cast(@guid as varchar(36)))
if @isExecuting = 1 begin
exec(@sqli)
end else begin
print @sqli
end
FETCH NEXT FROM crsGUIDs into @guid
END
close crsGUIDs;
DEALLOCATE crsGUIDs;
GO
---------------------------------------------
-- dbo.procRunScheduledIntegrationTask
CREATE PROCEDURE [dbo].[procRunScheduledIntegrationTask]
(
@ConfigID uniqueidentifier,
@ConfigScheduleID uniqueidentifier,
@IsDebugOnly bit = 0
)
AS
begin
DECLARE @statusCode INT;
DECLARE @contextXML VARCHAR(MAX) = '' + cast(@ConfigID as nvarchar(100)) + 'false' + cast(@ConfigScheduleID as nvarchar(100)) + '';
if (@IsDebugOnly = 0)
begin
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.DataIntegration.Tasks.ScheduledIntegrationTask, Strata.CS.Jazz.Biz', -- varchar(1000)
@contextXML = @contextXML,
@userName = 'Run Integration',
@statusCode = @statusCode OUTPUT,
@taskSource = 'procRunScheduledIntegrationTask'
END
end
GO
---------------------------------------------
-- dbo.procS3AssignGroupToRole
CREATE procedure dbo.[procS3AssignGroupToRole]
@GroupName as nvarchar(128),
@RoleID smallint,
@LootGroupID nvarchar(128),
@HistoryItemGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
AS
DECLARE @userGUID AS UNIQUEIDENTIFIER
DECLARE
userCursor CURSOR READ_ONLY
FOR
select
MU.UserGUID
from S3IdentityLink IL
inner join UserGroup G on G.UserGroupGUID = IL.GroupingGUID
left join UserGroup MG on MG.UserGroupGUID = IL.MemberGUID
left join UserProfile MU on MU.UserGUID = IL.MemberGUID
where G.Name = @GroupName and IL.Distance <> 0
OPEN
userCursor
FETCH NEXT FROM userCursor
INTO @userGUID
WHILE @@FETCH_STATUS = 0
BEGIN
--PRINT @userGUID
DECLARE @script AS NVARCHAR(1024)
SET @script = ''
SET @script = 'EXEC procS3AssignIdentityToRole ''' + CAST(@userGUID AS NVARCHAR(36)) + ''', ' + CAST(@RoleID AS NVARCHAR(10)) + ', ''' + @LootGroupID + ''''
PRINT @script
EXEC (@script)
FETCH NEXT FROM userCursor
INTO @userGUID
END
CLOSE userCursor
DEALLOCATE userCursor
GO
---------------------------------------------
-- dbo.procS3AssignIdentityToGroup
CREATE procedure [dbo].[procS3AssignIdentityToGroup]
@MEMBERGUID uniqueidentifier,
@GROUPINGGUID uniqueidentifier
as
DECLARE @cnt int
declare @ucnt int
SELECT
@ucnt = COUNT(*)
FROM
USERPROFILE
WHERE
userguid = @MEMBERGUID
declare @isuser bit
IF @ucnt = 0
set @isuser = 0
else
set @isuser = 1
select
@cnt = @ucnt + count(*)
from
usergroup
where
usergroupguid = @memberguid
and type = 0
IF @cnt = 0 BEGIN
PRINT cast(@MEMBERGUID as varchar(36)) + ' is invalid identity (not user or group)'
RETURN
END
SELECT
@cnt = COUNT(*)
FROM
USERGROUP
WHERE
USERGROUP.USERGROUPGUID = @GROUPINGGUID
and USERGROUP.TYPE = 0
IF @cnt = 0 BEGIN
PRINT cast(@GROUPINGGUID as varchar(36)) + ' is invalid identity (group)'
RETURN
END
SELECT
@cnt = count(*)
FROM
S3IdentityLink
WHERE
GroupingGUID = @GRoupingGUID
and MemberGUID = @memberguid
and distance = 1
IF @CNT > 0 begin
print 'member ' + cast(@memberguid as varchar(36)) + ' is already in group ' + cast(@groupingguid as varchar(36))
return
end
INSERT INTO
S3IdentityLink
(GroupingGUID, MemberGUID, Fullpath, Distance)
select
@GROUPINGGUID, @MEMBERGUID, '\' + cast(@GROUPINGGUID as varchar(36)) + '\' + cast(@MEMBERGUID as varchar(36)) + '\', 1
GO
---------------------------------------------
-- dbo.procS3AssignIdentityToRole
CREATE procedure [dbo].[procS3AssignIdentityToRole]
@IdentityGUID uniqueidentifier,
@RoleID smallint,
@LootGroupID nvarchar(128),
@HistoryItemGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
as
DECLARE @cnt int
declare @ucnt int
SELECT
@ucnt = COUNT(*)
FROM
USERPROFILE
WHERE
userguid = @IdentityGUID
declare @isuser bit
IF @ucnt = 0
set @isuser = 0
else
set @isuser = 1
select
@cnt = @ucnt + count(*)
from
usergroup
where
usergroupguid = @IdentityGUID
and type = 0
IF @cnt = 0 BEGIN
PRINT cast(@IdentityGUID as varchar(36)) + ' is invalid identity (not user or group)'
RETURN
END
SELECT
@cnt = COUNT(*)
FROM
USERROLE
WHERE
USERROLE.RoleID = @RoleID
IF @cnt = 0 BEGIN
PRINT cast(@RoleID as varchar(36)) + ' is invalid role'
RETURN
END
SELECT
@cnt = COUNT(*)
FROM
S3LootGroup
WHERE
LootGroupID = @LootGroupID
IF @cnt = 0 BEGIN
PRINT cast(@LootGroupID as varchar(36)) + ' is invalid loot'
RETURN
END
SELECT
@CNT = COUNT(*)
from
S3RoleAssignment ra
where
ra.IdentityGUID = @IdentityGUID
and ra.LootGroupID = @LootGroupID
and ra.RoleID = @RoleID
IF @cnt > 0 begin
PRINT cast(@IdentityGUID as varchar(36)) + ' already in role ' + cast(@RoleID as varchar(36)) + ' for loot ' + cast(@LootGroupID as nvarchar(128))
return
end
INSERT INTO
S3RoleAssignment ( IdentityGUID,LootGroupID, RoleID, HistoryItemGUID)
VALUES
(@IdentityGUID, @LootGroupID, @RoleID, @HistoryItemGUID)
--
--
--IF (@PARENTUSERGROUPGUID != @IDENTITYGUID)
--BEGIN
-- DECLARE @FULLPATH as varchar(800)
-- SET @FULLPATH = '\' + cast(@PARENTUSERGROUPGUID as varchar(36)) + '\' + cast(@IDENTITYGUID as varchar(36)) + '\'
--
-- IF @USERGROUPCHILDTYPE = 0
-- INSERT INTO S2IdentityLink (GroupingGUID, MemberGUID, Fullpath, Distance, GroupingIdentityGUID, GroupingLootGroupID, IsUser) VALUES(@PARENTUSERGROUPGUID, @IDENTITYGUID, @FULLPATH, 1, @GROUPINGIDENTITYGUID, @LootGroupID, 1)
--
-- IF @USERGROUPCHILDTYPE = 1
-- INSERT INTO S2IdentityLink (GroupingGUID, MemberGUID, Fullpath, Distance, GroupingIdentityGUID, GroupingLootGroupID, IsUser) VALUES(@PARENTUSERGROUPGUID, @IDENTITYGUID, @FULLPATH, 1, @GROUPINGIDENTITYGUID, @LootGroupID, 0)
--END
--
--
--
GO
---------------------------------------------
-- dbo.procS3AssignIdentityToSpecialRole
CREATE procedure [dbo].[procS3AssignIdentityToSpecialRole]
@IdentityGUID uniqueidentifier,
@RoleTypeID int,
@LootGroupID nvarchar(128)
as
set nocount on
INSERT INTO
S3RoleAssignment ( IdentityGUID,LootGroupID, RoleID)
SELECT
@IdentityGUID,
@LootGroupID,
r.RoleID
from
[dbo].[UserRole] r (readuncommitted)
where
r.Type = @RoleTypeID
and not exists(select 1 from [dbo].[S3RoleAssignment] ex (readuncommitted) where ex.IdentityGUID = @IdentityGUID and ex.LootGroupID = @LootGroupID and ex.RoleID = r.RoleID)
GO
---------------------------------------------
-- dbo.procS3AssignSecurityToButton
CREATE procedure [dbo].[procS3AssignSecurityToButton]
@lootId nvarchar(max),
@identityGuid uniqueidentifier
as
declare @systemSectionRootLootId uniqueidentifier = '1F30ED4A-DFA5-4EA6-8457-20D23DB372C3'
-- Get read access roleId
declare @readAccessRoleId int
select @readAccessRoleId = roleid from dbo.UserRole where Name = 'Access - Read Allow'
-- Add to System Section Permission Set
declare @psetid int
select top 1 @psetid = PermissionSetID from [dbo].[S3PermissionSet] where Name in ('System Sections', 'SS - System')
if (@psetid is null)
begin
print 'System Section permission set not found'
return
end
if (@readAccessRoleId is null)
begin
print 'Access - Read Allow role not found'
return
end
-- Recreate Loot to ensure it's in the right permission set
delete from S3Loot where LootID = @lootId and PermissionSetID != @psetid
insert into [dbo].[S3Loot] (LootID, PermissionSetID)
select @lootId, @psetid where not exists (select 1 from [dbo].[S3Loot] inn where inn.LootID = @lootId)
-- Set up relationship with root system section
insert into [dbo].[S3LootGroup] (LootID, LootGroupID)
select @lootId, @systemSectionRootLootId
where not exists (select 1 from [dbo].[S3LootGroup] inn where inn.LootID=@lootId and inn.LootGroupID=@systemSectionRootLootId)
union all
select @lootId, @lootId
where not exists (select 1 from [dbo].[S3LootGroup] inn where inn.LootID=@lootId and inn.LootGroupID=@lootId)
-- Add role assignment
declare @roleAssignmentCount int
select @roleAssignmentCount = COUNT(*) from S3RoleAssignment where LootGroupID=@lootId and RoleId=@readAccessRoleId and IdentityGuid = @identityguid
if (@roleAssignmentCount = 0)
begin
insert into dbo.S3RoleAssignment(IdentityGUID, RoleId, LootGroupID)
select @identityGuid,@readAccessRoleId, @lootId
end
GO
---------------------------------------------
-- dbo.procS3ClearAssignmentByLootGroupRole
-- =============================================
-- Author: William Yuan
-- Create date: 8/28
-- Description: Clears security based on entity and role combination. Security 2.0
-- =============================================
CREATE PROCEDURE [dbo].[procS3ClearAssignmentByLootGroupRole]
-- Add the parameters for the stored procedure here
@LootGroupID nvarchar(128),
@RoleID smallint,
@HistoryItemGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
AS
BEGIN
SET NOCOUNT ON;
UPDATE
S3RoleAssignment
SET
IsMarkedDeleted = 1,
HistoryItemGUID = @HistoryItemGUID
WHERE
LootGroupID = @LootGroupID
AND RoleID = @RoleID
END
GO
---------------------------------------------
-- dbo.procS3ClearAssignmentByLootGroupRoleIdentity
-- =============================================
-- Author: William Yuan
-- Create date: 8/28
-- Description: Clears security based on entity and role combination. Security 2.0
-- =============================================
CREATE PROCEDURE [dbo].[procS3ClearAssignmentByLootGroupRoleIdentity]
-- Add the parameters for the stored procedure here
@LootGroupID nvarchar(128),
@RoleID smallint,
@IDENTITYGUID uniqueidentifier,
@HistoryItemGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
AS
BEGIN
SET NOCOUNT ON;
UPDATE
S3RoleAssignment
SET
IsMarkedDeleted = 1,
HistoryItemGUID = @HistoryItemGUID
WHERE
LootGroupID = @LootGroupID
AND RoleID = @RoleID
AND IdentityGUID = @IdentityGUID
END
GO
---------------------------------------------
-- dbo.procS3ClearSecurityByLootGroup
CREATE PROCEDURE [dbo].[procS3ClearSecurityByLootGroup]
@LootGroupID nvarchar(128)
AS
BEGIN
SET NOCOUNT ON;
DELETE
S3Loot
WHERE
LootId = @LootGroupID
DELETE
S3RoleAssignment
WHERE
LootGroupID = @LootGroupID
DELETE
S3LootGroup
WHERE
LootGroupID = @LootGroupID
END
GO
---------------------------------------------
-- dbo.procS3CopyRoleAssignments
CREATE procedure [dbo].[procS3CopyRoleAssignments]
@SRCLootGroupID nvarchar(128),
@DSTLootGroupID nvarchar(128)
as
insert into S3RoleAssignment ( IdentityGUID, RoleID, LootGroupID)
select
IdentityGUID, RoleID, @DSTLootGroupID
from
S3RoleAssignment
where
LootGroupID = @SRCLootGroupID
and not exists (
select 1
from
S3RoleAssignment rax
where
rax.IdentityGUID = S3RoleAssignment.IdentityGUID
and rax.RoleID = S3RoleAssignment.RoleID
and rax.LootGroupID = @DSTLootGroupID
)
GO
---------------------------------------------
-- dbo.procS3DebugLoot
CREATE proc [dbo].[procS3DebugLoot]
@lootID nvarchar(100),
@userNameOrGUID nvarchar(100)
as
--find the user
declare @userGUID uniqueidentifier
declare @userNameFull nvarchar(100)
declare @username nvarchar(100)
select @userGUID = UserGUID, @userNameFull = NameFull, @username = UserName from UserProfile where UserName = @userNameOrGUID or NameFull = @userNameOrGUID or CAST(UserGUID as nvarchar(36)) = @userNameOrGUID
if(@userGUID is null) begin
print 'User not found'
return
end
print 'User: ' + @userNameFull + ' (' + @username + ')'
print ''
--verify the loot exists
if((select COUNT(*) from S3Loot where LootID = @lootID) = 0) begin
print 'Loot not found'
return
end
--user access
declare @read nvarchar(10); declare @write nvarchar(10); declare @secure nvarchar(10); declare @delete nvarchar(10); declare @create nvarchar(10);
if((select COUNT(*) from viewS3ACL where LootID = @lootID and UserGUID = @userGUID) > 0) begin
select @read = case when coalesce(IsReadable, 0) = 1 then ' Read' else '' end, @write = case when coalesce(IsWritable, 0) = 1 then ' Write' else '' end, @secure = case when coalesce(IsSecurable, 0) = 1 then ' Secure' else '' end, @delete = case when coalesce(IsDeletable, 0) = 1 then ' Delete' else '' end, @create = case when coalesce(IsCreatable, 0) = 1 then ' Create' else '' end from viewS3ACL where LootID = @lootID and UserGUID = @userGUID
print 'User Access:' + @read + @write + @create + @delete + @secure
end else begin
print 'User Access: (none)'
end
--role assignments
declare @roledetail nvarchar(max); declare @identname nvarchar(100); declare @roleassign nvarchar(100); declare @assigngroup nvarchar(100)
set @roledetail = ''
declare crsRoles cursor fast_forward for select distinct IdentityName, RoleName, LootGroupID from viewS3RoleAssignmentDetail where LootID = @lootID and UserGUID = @userGUID
open crsRoles
fetch next from crsRoles into @identname, @roleassign, @assigngroup
while(@@FETCH_STATUS = 0) begin
if(@roledetail != '') begin set @roledetail = @roledetail + ', ' end
set @roledetail = @roledetail + @identname + ' -> ' + @roleassign + ' (' + @assigngroup + ')'
fetch next from crsRoles into @identname, @roleassign, @assigngroup
end
close crsRoles
deallocate crsRoles
print 'User Assignments: ' + @roledetail
print ''
--permission set
declare @pset nvarchar(100)
declare @psetid int
select @pset = PS.Name, @psetid = PS.PermissionSetID from S3Loot L inner join S3PermissionSet PS on PS.PermissionSetID = L.PermissionSetID where L.LootID = @lootID
print 'Permission Set: ' + @pset
--parents
declare @parents nvarchar(max)
declare @parent nvarchar(100)
set @parents = ''
declare crsParents cursor fast_forward for select LootGroupID from S3LootGroup where LootID = @lootID and LootID != LootGroupID
open crsParents
fetch next from crsParents into @parent
while(@@FETCH_STATUS = 0) begin
if(@parents != '') begin set @parents = @parents + ', ' end
set @parents = @parents + @parent
fetch next from crsParents into @parent
end
close crsParents
deallocate crsParents
print 'Parents: ' + @parents
print ''
--access detail
declare @readdetail nvarchar(max); declare @writedetail nvarchar(max); declare @securedetail nvarchar(max); declare @deletedetail nvarchar(max); declare @createdetail nvarchar(max);
set @readdetail = ''; set @writedetail = ''; set @securedetail = ''; set @deletedetail = ''; set @createdetail = '';
declare @roleid int; declare @rolename nvarchar(100); declare @lootgroup nvarchar(100); declare @readallow int; declare @readdeny int; declare @writeallow int; declare @writedeny int; declare @secureallow int; declare @securedeny int; declare @deleteallow int; declare @deletedeny int; declare @createallow int; declare @createdeny int;
declare crsDetails cursor fast_forward for select distinct RoleID, RoleName, LootGroupID, ReadAllowPts, ReadDenyPts, WriteAllowPts, WriteDenyPts, SecureAllowPts, SecureDenyPts, DeleteAllowPts, DeleteDenyPts, CreateAllowPts, CreateDenyPts from viewS3ACLDetail where LootID = @lootID and UserGUID = @userGUID
open crsDetails
fetch next from crsDetails into @roleid, @rolename, @lootgroup, @readallow, @readdeny, @writeallow, @writedeny, @secureallow, @securedeny, @deleteallow, @deletedeny, @createallow, @createdeny
while(@@FETCH_STATUS = 0) begin
if(@readallow > 0) begin if(@readdetail != '') begin set @readdetail = @readdetail + ', ' end set @readdetail = @readdetail + @rolename + ' +' + cast(@readallow as nvarchar(16)) + ' (' + @lootgroup + ')' end
if(@readdeny > 0) begin if(@readdetail != '') begin set @readdetail = @readdetail + ', ' end set @readdetail = @readdetail + @rolename + ' -' + cast(@readdeny as nvarchar(16)) + ' (' + @lootgroup + ')' end
if(@writeallow > 0) begin if(@writedetail != '') begin set @writedetail = @writedetail + ', ' end set @writedetail = @writedetail + @rolename + ' +' + cast(@writeallow as nvarchar(16)) + ' (' + @lootgroup + ')' end
if(@writedeny > 0) begin if(@writedetail != '') begin set @writedetail = @writedetail + ', ' end set @writedetail = @writedetail + @rolename + ' -' + cast(@writedeny as nvarchar(16)) + ' (' + @lootgroup + ')' end
if(@createallow > 0) begin if(@createdetail != '') begin set @createdetail = @createdetail + ', ' end set @createdetail = @createdetail + @rolename + ' +' + cast(@createallow as nvarchar(16)) + ' (' + @lootgroup + ')' end
if(@createdeny > 0) begin if(@createdetail != '') begin set @createdetail = @createdetail + ', ' end set @createdetail = @createdetail + @rolename + ' -' + cast(@createdeny as nvarchar(16)) + ' (' + @lootgroup + ')' end
if(@deleteallow > 0) begin if(@deletedetail != '') begin set @deletedetail = @deletedetail + ', ' end set @deletedetail = @deletedetail + @rolename + ' +' + cast(@deleteallow as nvarchar(16)) + ' (' + @lootgroup + ')' end
if(@deletedeny > 0) begin if(@deletedetail != '') begin set @deletedetail = @deletedetail + ', ' end set @deletedetail = @deletedetail + @rolename + ' -' + cast(@deletedeny as nvarchar(16)) + ' (' + @lootgroup + ')' end
if(@secureallow > 0) begin if(@securedetail != '') begin set @securedetail = @securedetail + ', ' end set @securedetail = @securedetail + @rolename + ' +' + cast(@secureallow as nvarchar(16)) + ' (' + @lootgroup + ')' end
if(@securedeny > 0) begin if(@securedetail != '') begin set @securedetail = @securedetail + ', ' end set @securedetail = @securedetail + @rolename + ' -' + cast(@securedeny as nvarchar(16)) + ' (' + @lootgroup + ')' end
fetch next from crsDetails into @roleid, @rolename, @lootgroup, @readallow, @readdeny, @writeallow, @writedeny, @secureallow, @securedeny, @deleteallow, @deletedeny, @createallow, @createdeny
end
close crsDetails
deallocate crsDetails
print 'Read Detail: ' + @readdetail
print 'Write Detail: ' + @writedetail
print 'Create Detail: ' + @createdetail
print 'Delete Detail: ' + @deletedetail
print 'Secure Detail: ' + @securedetail
print 'Detail Legend: +X => Allow Weight X, -Y => Deny Weight Y'
print ''
--permission set detail
declare @psreadhowto nvarchar(max); declare @pswritehowto nvarchar(max); declare @pscreatehowto nvarchar(max); declare @psdeletehowto nvarchar(max); declare @pssecurehowto nvarchar(max);
set @psreadhowto = ''; set @pswritehowto = ''; set @pscreatehowto = ''; set @psdeletehowto = ''; set @pssecurehowto = '';
declare @psrole nvarchar(100); declare @psread int; declare @pswrite int; declare @pssecure int; declare @pscreate int; declare @psdelete int;
declare crsPSDetail cursor fast_forward for select R.Name, P.ReadAllowPts, P.WriteAllowPts, P.SecureAllowPts, P.CreateAllowPts, P.DeleteAllowPts from S3Permission P inner join UserRole R on R.RoleID = P.RoleID where P.PermissionSetID = @psetid
open crsPSDetail
fetch next from crsPSDetail into @psrole, @psread, @pswrite, @pssecure, @pscreate, @psdelete
while(@@FETCH_STATUS = 0) begin
if(@psread > 0) begin if(@psreadhowto != '') begin set @psreadhowto = @psreadhowto + ', ' end set @psreadhowto = @psreadhowto + @psrole + ' (+' + CAST(@psread as nvarchar(16)) + ')' end
if(@pswrite > 0) begin if(@pswritehowto != '') begin set @pswritehowto = @pswritehowto + ', ' end set @pswritehowto = @pswritehowto + @psrole + ' (+' + CAST(@pswrite as nvarchar(16)) + ')' end
if(@pscreate > 0) begin if(@pscreatehowto != '') begin set @pscreatehowto = @pscreatehowto + ', ' end set @pscreatehowto = @pscreatehowto + @psrole + ' (+' + CAST(@pscreate as nvarchar(16)) + ')' end
if(@psdelete > 0) begin if(@psdeletehowto != '') begin set @psdeletehowto = @psdeletehowto + ', ' end set @psdeletehowto = @psdeletehowto + @psrole + ' (+' + CAST(@psdelete as nvarchar(16)) + ')' end
if(@pssecure > 0) begin if(@pssecurehowto != '') begin set @pssecurehowto = @pssecurehowto + ', ' end set @pssecurehowto = @pssecurehowto + @psrole + ' (+' + CAST(@pssecure as nvarchar(16)) + ')' end
fetch next from crsPSDetail into @psrole, @psread, @pswrite, @pssecure, @pscreate, @psdelete
end
close crsPSDetail
deallocate crsPSDetail
print 'How To Get Read: ' + @psreadhowto
print 'How To Get Write: ' + @pswritehowto
print 'How To Get Create: ' + @pscreatehowto
print 'How To Get Delete: ' + @psdeletehowto
print 'How To Get Secure: ' + @pssecurehowto
GO
---------------------------------------------
-- dbo.procS3DebugMember
CREATE proc [dbo].[procS3DebugMember]
@dimensionNameOrGUID nvarchar(100),
@memberNameOrGUID nvarchar(100),
@userNameOrGUID nvarchar(100)
as
--find the dimension
declare @dimGUID uniqueidentifier
declare @dimName nvarchar(100)
declare @dimSQL nvarchar(100)
declare @issecure bit
select @dimGUID = DimensionGUID, @dimName = FriendlyName, @dimSQL = SQLSchemaName + '.' + SQLObjectName, @issecure = IsSecured from ScoreDimension where FriendlyName = @dimensionNameOrGUID or CAST(DimensionGUID as nvarchar(36)) = @dimensionNameOrGUID
if(@dimGUID is null) begin
print 'Dimension not found'
return
end
if(@issecure = 0) begin
print 'Dimension is not secured!'
return
end
print 'Dimension: ' + @dimName
--get the loot prefix
declare @lootattr nvarchar(100)
declare @prefix nvarchar(50)
select @lootattr = A.SQLColumnName, @prefix = A.SecuredLootGroupPrefix from ScoreAttribute A
inner join ScoreDimensionGroup SG on SG.DimensionGroupGUID = A.DimensionGroupGUID
inner join ScoreDimension D on D.DimensionGUID = SG.DimensionGUID
where A.IsSecuredLootID = 1 and D.DimensionGUID = @dimGUID
if(@lootattr is null) begin
print 'Secure loot ID column not found'
return
end
if(@prefix != '') begin
set @prefix = @prefix + '|'
end
declare @sql nvarchar(max)
set @sql = '
--find the member loot
declare @lootID nvarchar(100)
declare @memberName nvarchar(450)
select @memberName = Name, @lootID = ''' + @prefix + ''' + cast(' + @lootattr + ' as nvarchar(100)) from ' + @dimSQL + ' where Name = ''' + @memberNameOrGUID + ''' or cast(MemberGUID as nvarchar(36)) = ''' + @memberNameOrGUID + '''
if(@lootID is null) begin
print ''Member not found''
return
end
print ''Member: '' + @memberName + '' ('' + @lootID + '')''
exec procS3DebugLoot @lootID, ''' + @userNameOrGUID + '''
'
exec(@sql)
GO
---------------------------------------------
-- dbo.procS3DebugPlan
CREATE proc [dbo].[procS3DebugPlan]
@planNameOrGUID nvarchar(450),
@userNameOrGUID nvarchar(100)
as
--check for dupes
if((select COUNT(*) from XPlan where Name = @planNameOrGUID) > 1) begin
print 'Plan name is not unique. Please provide the PlanGUID.'
return
end
--find the plan loot
declare @lootID nvarchar(100)
declare @planName nvarchar(450)
select @planName = Name, @lootID = CachedLootID from XPlan where Name = @planNameOrGUID or CAST(PlanGUID as nvarchar(36)) = @planNameOrGUID
if(@lootID is null) begin
print 'Plan not found'
return
end
print 'Plan: ' + @planName + ' (' + @lootID + ')'
exec procS3DebugLoot @lootID, @userNameOrGUID
GO
---------------------------------------------
-- dbo.procS3DeleteOrphans
CREATE proc [dbo].[procS3DeleteOrphans]
@lootGroupPrefix nvarchar(100) = null,
@isExecuting bit = 0
as
IF @lootGroupPrefix=''
BEGIN
RAISERROR(N'LootGroupPrefix couldn''t be empty string', 1, 16)
RETURN
END
CREATE TABLE #s3orphan(
[LootID] [nvarchar](128) NOT NULL,
[PermissionSetID] [smallint] NOT NULL)
IF @lootGroupPrefix IS NULL OR @lootGroupPrefix = 'P'
BEGIN
insert into #s3orphan select LootID, PermissionSetID from S3Loot where LootGroupPrefix = 'P' and LootID not in(select CachedLootID from [dbo].[XPlan])
END
declare @sql nvarchar(max)
select @sql = dbo.straggr('insert into #s3orphan select LootID, PermissionSetID from S3Loot where LootGroupPrefix = ''' + SecuredLootGroupPrefix + ''' and LootID not in(select ''' + SecuredLootGroupPrefix + '|'' + cast(' + SQLColumnName + ' as nvarchar(16)) from ' + DimensionSQLObjectExpression + ')', '
', '') from viewScoreAttribute where IsSecuredLootID = 1 and ((SecuredLootGroupPrefix not in('', 'P') AND @lootGroupPrefix IS NULL) OR (SecuredLootGroupPrefix = @lootGroupPrefix AND @lootGroupPrefix IS NOT NULL))
exec(@sql)
if (@isExecuting = 1) begin
delete x
from S3LootGroup x
inner join #s3orphan y on x.LootID = y.LootID
delete x
from S3RoleAssignment x
inner join #s3orphan y on x.LootGroupID = y.LootID
delete x
from S3Loot x
inner join #s3orphan y on x.LootID = y.LootID
end
select * from #s3orphan
drop table #s3orphan
GO
---------------------------------------------
-- dbo.procS3EnsureSimplePermissionDefaultForStrata
create proc procS3EnsureSimplePermissionDefaultForStrata
as
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 1, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 1)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 3, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 3)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 4, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 4)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 6, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 6)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 8, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 8)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 9, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 9)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 10, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 10)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 11, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 11)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 12, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 12)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 13, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 13)
insert into S3SimplePermissionDefault (EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue) select 14, UserGroupGUID, CAST(1 as bit), CAST(1 as bit), CAST(1 as bit) from UserGroup where Name = 'Strata Administrator' and UserGroupGUID not in(select IdentityGUID from S3SimplePermissionDefault where EntityType = 14)
GO
---------------------------------------------
-- dbo.procS3GetUserGUIDsAssignedToPRGroups
/*************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2019-12-05 HV TK-80875 PR | Emails
*************************************************************/
CREATE PROCEDURE dbo.procS3GetUserGUIDsAssignedToPRGroups
@PRCategory nvarchar(64)
AS
SELECT DISTINCT MemberGUID FROM [dbo].[S3IdentityLink] il
INNER JOIN [dbo].[UserGroup] ug on ug.UserGroupGUID = il.GroupingGUID
WHERE ug.Category = @PRCategory
GO
---------------------------------------------
-- dbo.procS3GetUsersAssignedToMRDepartments
/*************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2019-11-21 KF B-24581 PR | Emails - Responsibility / User Picker - Daily
** 2 2022-05-24 HV JAZZ-38243 PR Roles PR notifications emails
*************************************************************/
CREATE PROCEDURE dbo.procS3GetUsersAssignedToMRDepartments
@RoleIDs nvarchar(max)
AS
SELECT * FROM
(
-- Department level
SELECT S.RoleID, S.UserGUID, U.NameFull as UserNameFull FROM viewS3RoleAssignmentDetail S
INNER JOIN dbo.UserProfile U ON U.UserGUID = S.UserGUID
WHERE
U.IsDisabled = 0
AND S.IsDirectAssignment = 1
AND S.LootID Like 'MRDept|%'
AND S.RoleID IN (select val from ConvertCSValuesToTable(@RoleIDs, ','))
UNION
-- Rollup levels
SELECT S.RoleID, S.UserGUID, U.NameFull as UserNameFull FROM viewS3RoleAssignmentDetail S
INNER JOIN dbo.UserProfile U ON U.UserGUID = S.UserGUID
WHERE
U.IsDisabled = 0
AND S.LootID Like 'MRDept|%'
AND (S.LootGroupID Like 'SYS%' OR S.LootGroupID Like 'ENT%' OR S.LootGroupID Like 'DeptRollup%')
AND S.RoleID IN (select val from ConvertCSValuesToTable(@RoleIDs, ','))
) as R
INNER JOIN
(
SELECT DISTINCT MemberGUID FROM [dbo].[S3IdentityLink] il
INNER JOIN [dbo].[UserGroup] ug on ug.UserGroupGUID = il.GroupingGUID
WHERE ug.Category = 'PR'
) as G
on R.UserGUID = G.MemberGUID
GO
---------------------------------------------
-- dbo.procS3GetUsersAssignedToMRDepartmentsForPR
/*************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2022-06-02 KF JAZZ-38243 PR Roles PR notifications emails
*************************************************************/
CREATE PROCEDURE [dbo].[procS3GetUsersAssignedToMRDepartmentsForPR]
@RoleIDs nvarchar(max)
AS
IF OBJECT_ID('tempdb..#roleIDs') IS NOT NULL DROP TABLE #roleIDs;
CREATE TABLE #roleIDs (RoleID INT Primary Key)
INSERT INTO #roleIDs (RoleID)
SELECT val FROM ConvertCSValuesToTable(@RoleIDs, ',')
SELECT R.* FROM
(
-- Department level
SELECT S.RoleID, S.UserGUID, U.NameFull as UserNameFull FROM viewS3RoleAssignmentDetail S
INNER JOIN dbo.UserProfile U ON U.UserGUID = S.UserGUID
INNER JOIN #roleIDs R ON R.RoleID = S.RoleID
WHERE
U.IsDisabled = 0
AND S.IsDirectAssignment = 1
AND S.LootID Like 'MRDept|%'
UNION
-- Rollup levels
SELECT S.RoleID, S.UserGUID, U.NameFull as UserNameFull FROM viewS3RoleAssignmentDetail S
INNER JOIN dbo.UserProfile U ON U.UserGUID = S.UserGUID
INNER JOIN #roleIDs R ON R.RoleID = S.RoleID
WHERE
U.IsDisabled = 0
AND S.LootID Like 'MRDept|%'
AND (S.LootGroupID Like 'SYS%' OR S.LootGroupID Like 'ENT%' OR S.LootGroupID Like 'DeptRollup%')
) as R
INNER JOIN UserRole UR ON UR.RoleID = R.RoleID
INNER JOIN
(
SELECT DISTINCT MemberGUID FROM [dbo].[S3IdentityLink] il
INNER JOIN [dbo].[UserGroup] ug on ug.UserGroupGUID = il.GroupingGUID
WHERE ug.Category = 'PR'
) as PG ON PG.MemberGUID = R.UserGUID
LEFT JOIN
(
SELECT DISTINCT MemberGUID FROM [dbo].[S3IdentityLink] il
INNER JOIN [dbo].[UserGroup] ug on ug.UserGroupGUID = il.GroupingGUID
WHERE ug.Category = 'MR'
) as MG ON MG.MemberGUID = R.UserGUID
WHERE UR.Category = 'PR' OR (UR.Category = 'MR' AND MG.MemberGUID IS NOT NULL)
IF OBJECT_ID('tempdb..#roleIDs') IS NOT NULL DROP TABLE #roleIDs;
GO
---------------------------------------------
-- dbo.procS3IdentityLinkAddMissing
CREATE proc [dbo].[procS3IdentityLinkAddMissing] as
INSERT INTO S3IdentityLink (GroupingGUID, MemberGUID, FullPath, Distance)
SELECT
Userguid,
UserGuid,
'\' + cast(userguid as varchar(36)) + '\',
0
FROM
UserProfile
WHERE
not exists (select 1 from S3IdentityLink il where il.GroupingGUID = UserGUID and il.MemberGUID = UserGUID)
--distance 1 to everyone group
INSERT INTO S3IdentityLink (GroupingGUID, MemberGUID, FullPath, Distance)
SELECT
'00000000-0000-0000-0000-000000000001',
ins.UserGuid,
'\00000000-0000-0000-0000-000000000001\' + cast(ins.userguid as varchar(36)) + '\',
1
FROM
userprofile INS
WHERE
not exists (select 1 from S3IdentityLink il where il.GroupingGUID = '00000000-0000-0000-0000-000000000001' and il.MemberGUID = UserGUID)
INSERT INTO S3IdentityLink (GroupingGUID, MemberGUID, FullPath, Distance)
SELECT
ins.UserGroupGUID,
ins.UserGroupGUID,
'\' + cast(ins.UserGroupGUID as varchar(36)) + '\',
0
FROM
UserGroup ins
WHERE
not exists (
select 1
from S3IdentityLink ilx
where ilx.MemberGUID = ins.UserGroupGUID and ilx.GroupingGUID = ins.UserGroupGUID
)
GO
---------------------------------------------
-- dbo.procS3IdentityLinkFixFullpaths
CREATE proc procS3IdentityLinkFixFullpaths
@isDebugOnly bit = 0
as
declare @fullpath nvarchar(400)
declare @fixed nvarchar(400)
declare @pos int
declare crsLinks cursor read_only fast_forward for select Fullpath from S3IdentityLink (readuncommitted) where Fullpath not like '\%' or ((len(Fullpath) - 1) / 37.0) != floor((len(Fullpath) - 1) / 37.0)
open crsLinks
fetch next from crsLinks into @fullpath
while(@@FETCH_STATUS = 0) begin
set @fixed = @fullpath
set @pos = 1
while (@pos < LEN(@fixed)) begin
if (SUBSTRING(@fixed, @pos, 1) != '\') begin
if (@pos = 1) begin
set @fixed = '\' + @fixed
end else begin
set @fixed = SUBSTRING(@fixed, 1, @pos - 1) + '\' + SUBSTRING(@fixed, @pos, len(@fixed) - @pos + 1)
end
end
set @pos = @pos + 37
end
print @fullpath + ' -> ' + @fixed
if (@isDebugOnly = 0) begin
if((select count(*) from [dbo].[S3IdentityLink] where Fullpath = @fixed) > 0) begin
delete from [dbo].[S3IdentityLink] where Fullpath = @fullpath
end else begin
update [dbo].[S3IdentityLink] set Fullpath = @fixed where Fullpath = @fullpath
end
end
fetch next from crsLinks into @fullpath
end
close crsLinks
deallocate crsLinks
update il set il.Fullpath = il.Fullpath + '\' from S3IdentityLink il where il.Fullpath not like '%\' and not exists(select 1 from S3IdentityLink ex where ex.Fullpath = il.Fullpath + '\')
GO
---------------------------------------------
-- dbo.procS3LootGroupUpdateSystemSection
CREATE proc [dbo].[procS3LootGroupUpdateSystemSection] as
declare @psid int
select @psid = permissionsetid from S3PermissionSet where MetaForUpgrade = '1F30ED4A-DFA5-4EA6-8457-20D23DB372C3'
if @psid is null begin
print 'This depends on the existence of a s3permissionset with metaforupgrade = 1F30ED4A-DFA5-4EA6-8457-20D23DB372C3'
return
end
insert into S3Loot ( LootID, PermissionSetID)
select
ss.SYSTEMSECTIONGUID,@psid
from
SystemSection ss
where
not exists (
select 1
from
S3Loot l
where
l.LootID = CAST(ss.systemsectionguid as varchar(36))
)
--******************
--******************
--Create S3LootGroup for secured systemsections
--******************
--******************
create table #S3LootGroup( LootID nvarchar(128), LootGroupID nvarchar(128))
insert into #S3LootGroup( LootID,LootGroupID)
select CAST(ss1 as varchar(36)), CAST(ss1 as varchar(36)) from viewSystemSectionFlat
union all
select CAST(ss1 as varchar(36)), CAST(ss2 as varchar(36)) from viewSystemSectionFlat where ss2 is not null
union all
select CAST(ss1 as varchar(36)), CAST(ss3 as varchar(36)) from viewSystemSectionFlat where ss3 is not null
union all
select CAST(ss1 as varchar(36)), CAST(ss4 as varchar(36)) from viewSystemSectionFlat where ss4 is not null
union all
select CAST(ss1 as varchar(36)), CAST(ss5 as varchar(36)) from viewSystemSectionFlat where ss5 is not null
union all
select CAST(ss1 as varchar(36)), CAST(ss6 as varchar(36)) from viewSystemSectionFlat where ss6 is not null
--delete invalid ones
DELETE lg FROM S3LootGroup lg WHERE
lg.LootID IN (select nlg.LootID from #S3LootGroup nlg)
and NOT EXISTS (
SELECT 1
FROM #S3LootGroup nlg
WHERE lg.lootid = nlg.LootID and lg.lootgroupid = nlg.lootgroupid
)
--add valid ones
INSERT INTO S3LootGroup (LootID, LootGroupID)
SELECT
lootid, lootgroupid
FROM
#S3LootGroup nlg
WHERE
NOT EXISTS (
SELECT 1
FROM S3LootGroup lg
WHERE lg.lootid = nlg.LootID and lg.lootgroupid = nlg.lootgroupid
)
drop table #s3lootgroup
GO
---------------------------------------------
-- dbo.procS3MenuSecurityAfterSave
create proc dbo.procS3MenuSecurityAfterSave
as
--replace user management system center security with latest menu item security
delete from S3simplepermission where lootid in('68E8430F-F3BC-4286-B73D-6CDEA144F7BC', 'BA346C79-C2D0-4CA2-8090-CC71719A1B5B');
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select s.sectionguid, p.identityguid, p.readvalue, p.writevalue, p.securevalue from S3simplepermission p cross join SystemCenterSection s where p.lootid = 'd62a6536-9bfb-4bde-b945-eda88ab0e19e' and s.sectionguid in('68E8430F-F3BC-4286-B73D-6CDEA144F7BC', 'BA346C79-C2D0-4CA2-8090-CC71719A1B5B');
GO
---------------------------------------------
-- dbo.procS3PlanTypeLootExpressionSet
CREATE proc procS3PlanTypeLootExpressionSet
@planTypeGUID uniqueidentifier,
@lootIDSQLExpression nvarchar(100),
@defaultPermissionSetID smallint,
@isUpdatingExistingPlans bit = 0
as
if((select COUNT(*) from PlanType where PlanTypeGUID = @planTypeGUID) = 0) begin
print 'Plan type not found'
return
end
update PlanType set LootIDSQLExpression = @lootIDSQLExpression where PlanTypeGUID = @planTypeGUID
if(@isUpdatingExistingPlans = 1) begin
select CachedLootID into ##oldloot from XPlan where PlanTypeGUID = @planTypeGUID
declare @updateSQL nvarchar(4000)
set @updateSQL = @updateSQL + 'update XPlan set CachedLootID = ' + @lootIDSQLExpression + ' where PlanTypeGUID = ''' + cast(@planTypeGUID as nvarchar(36)) + ''';'
delete from S3Loot where LootID in(select CachedLootID from ##oldloot) and LootID not in(select CachedLootID from XPlan)
insert into S3Loot(LootID, PermissionSetID) select CachedLootID, @defaultPermissionSetID from XPlan where PlanTypeGUID = @planTypeGUID and CachedLootID not in(select LootID from S3Loot)
drop table ##oldloot
end
GO
---------------------------------------------
-- dbo.procS3RebuildLootView
--/****** Object: StoredProcedure [dbo].[procScoreRunForManyStructures] Script Date: 10/16/2009 15:50:12 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
CREATE proc [dbo].[procS3RebuildLootView]
as
declare @dropSQL nvarchar(max)
set @dropsql = 'if dbo.ViewExists(''data'',''viewS3LootPossible'') = 1 begin
drop view data.viewS3LootPossible
end'
exec(@dropsql)
declare @viewSQL varchar(max)
--secured system sections
set @viewSQL = '
create view data.viewS3LootPossible as
select lootid, ''SecureListMember'' as LootType, Name from securelistmember where listguid in (select listguid from securelist where issecured = 1)
'
--secured dimensions
declare crsScoreDim CURSOR FOR
select '
select
''' + case when len(sa.securedlootgroupprefix) > 0 then sa.securedlootgroupprefix + '|' else '' end
+ ''' + cast(' + sa.sqlcolumnname + ' as varchar(max)),
''DimensionMember'',
cast(' + sadlk.sqlcolumnname + ' as varchar(max))
from
[' + sd.sqlschemaname + '].[' + sd.sqlobjectname + ']'
from
ScoreDimension SD
inner join viewScoreAttribute SA on sd.dimensionguid = sa.dimensionguid
inner join viewScoreAttribute SADLK on sd.dimensionguid = sadlk.dimensionguid and sd.defaultlookupkeyguid = sadlk.attributeguid
where
sd.issecured = 1
and sa.issecuredlootid = 1
and
(
dbo.viewexists(sd.sqlschemaname,sd.sqlobjectname) = 1
or dbo.tableexists(sd.sqlschemaname,sd.sqlobjectname) = 1
)
open crsScoreDim;
declare @dimsql varchar(max)
FETCH NEXT FROM crsScoreDim into @dimsql
WHILE (@@FETCH_STATUS = 0) BEGIN
set @viewSQL = @viewSQL + '
UNION ALL
' + @dimsql
FETCH NEXT FROM crsScoreDim into @dimsql
end
close crsscoredim
deallocate crsscoredim
exec(@viewsql)
GO
---------------------------------------------
-- dbo.procS3RebuildStatistics
create proc dbo.procS3RebuildStatistics
as
if (not exists(select 1 from fw.SystemSetting where Name = 'ACL Statistics Auto-Rebuild' and Value = '1')) begin
return
end
UPDATE STATISTICS [dbo].[S3IdentityLink] with fullscan;
UPDATE STATISTICS [dbo].[S3Loot] with fullscan ;
UPDATE STATISTICS [dbo].[S3LootGroup] with fullscan ;
UPDATE STATISTICS [dbo].[S3LootRefreshLog] with fullscan ;
UPDATE STATISTICS [dbo].[S3Permission] with fullscan ;
UPDATE STATISTICS [dbo].[S3PermissionSet] with fullscan ;
UPDATE STATISTICS [dbo].[S3RoleAssignment] with fullscan ;
UPDATE STATISTICS [dbo].[S3SimplePermission] with fullscan ;
UPDATE STATISTICS [dbo].[S3SimplePermissionDefault] with fullscan ;
UPDATE STATISTICS [dbo].[S3UserACLRegenRequest] with fullscan ;
GO
---------------------------------------------
-- dbo.procS3RemoveIdentityFromRole
CREATE procedure [dbo].[procS3RemoveIdentityFromRole]
@IdentityGUID uniqueidentifier,
@RoleID smallint,
@LootGroupID nvarchar(128),
@HistoryItemGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
as
DECLARE @cnt int
declare @ucnt int
SELECT
@ucnt = COUNT(*)
FROM
USERPROFILE
WHERE
userguid = @IdentityGUID
declare @isuser bit
IF @ucnt = 0
set @isuser = 0
else
set @isuser = 1
select
@cnt = @ucnt + count(*)
from
usergroup
where
usergroupguid = @IdentityGUID
and type = 0
IF @cnt = 0 BEGIN
PRINT cast(@IdentityGUID as varchar(36)) + ' is invalid identity (not user or group)'
RETURN
END
SELECT
@cnt = COUNT(*)
FROM
USERROLE
WHERE
USERROLE.RoleID = @RoleID
IF @cnt = 0 BEGIN
PRINT cast(@RoleID as varchar(36)) + ' is invalid role'
RETURN
END
SELECT
@cnt = COUNT(*)
FROM
S3LootGroup
WHERE
LootGroupID = @LootGroupID
IF @cnt = 0 BEGIN
PRINT cast(@LootGroupID as varchar(36)) + ' is invalid loot'
RETURN
END
SELECT
@CNT = COUNT(*)
from
S3RoleAssignment ra
where
ra.IdentityGUID = @IdentityGUID
and ra.LootGroupID = @LootGroupID
and ra.RoleID = @RoleID
IF @cnt = 0 begin
PRINT cast(@IdentityGUID as varchar(36)) + ' is not in role ' + cast(@RoleID as varchar(36)) + ' for loot ' + cast(@LootGroupID as nvarchar(128))
return
end
DELETE FROM
S3RoleAssignment
WHERE
IdentityGUID = @IdentityGUID
and RoleID = @RoleID
and LootGroupID = @LootGroupID
GO
---------------------------------------------
-- dbo.procS3SetSimplePermissionDefault
CREATE PROCEDURE [dbo].[procS3SetSimplePermissionDefault]
@EntityType int,
@IdentityGUID uniqueidentifier,
@ReadValue bit = 1,
@WriteValue bit = 0,
@SecureValue bit = 0
AS
BEGIN
SET NOCOUNT ON;
-- EntityTypes
-- 1: Folder
-- 3: Report
-- 4: PlanType
-- 6: MessagingTopic
-- 8: FormField
-- 9: FormSection
-- 10: Pool
-- 11: ListInsertionPoint
-- 12: CustomAction
-- 13: UserGroup
-- 14: Workflow
insert into S3SimplePermissionDefault(EntityType, IdentityGUID, ReadValue, WriteValue, SecureValue)
values(@EntityType, @IdentityGUID, @ReadValue, @WriteValue, @SecureValue)
END
GO
---------------------------------------------
-- dbo.procS3SyncUserDirectRoleAssignments
CREATE proc [procS3SyncUserDirectRoleAssignments] (
@SourceUserName nvarchar(64),
@TargetUserName nvarchar(64)
)
AS
BEGIN
declare @TargetUserGUID uniqueidentifier;
declare @SourceUserGUID uniqueidentifier;
select @TargetUserGUID = userguid from UserProfile where UserName = @TargetUserName;
select @SourceUserGUID = userguid from UserProfile where UserName = @SourceUserName;
if (@TargetUserGUID is null)
begin
print 'Couldn''t find target user: ' + @TargetUserName
return;
end
if (@SourceUserGUID is null)
begin
print 'Couldn''t find target user: ' + @SourceUserName
return;
end
insert into S3RoleAssignment
(IdentityGUID, RoleID, LootGroupID)
select
@TargetUserGUID,
D.RoleID,
D.LootGroupID
from viewS3RoleAssignmentDirect D
left join viewS3RoleAssignmentDirect C
on C.LootGroupID = D.LootGroupID
and C.RoleID = D.RoleID
and C.IdentityGUID = @TargetUserGUID
where D.IdentityGUID = (select userguid from UserProfile where UserName = @SourceUserName)
and D.RoleID <> (select RoleID from UserRole where Name = 'Author')
and C.IdentityGUID is null;
END
GO
---------------------------------------------
-- dbo.procS3UserAdminEnsureAccess
CREATE proc dbo.procS3UserAdminEnsureAccess
@userGUID uniqueidentifier
as
declare @isAdmin bit
select @isAdmin = ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS bit),0) from dbo.UserProfile UP
left join [dbo].[S3IdentityLink] IL on UP.UserGUID = IL.MemberGUID and IL.GroupingGUID = (select UserGroupGUID from [dbo].[UserGroup] where GlobalID = 'GEN - User Administrator')
where UP.UserGUID = @userGUID
if (@isAdmin = 1) begin
--add user setup menu access if not already present from group assignments
insert into S3SimplePermission (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
select 'd62a6536-9bfb-4bde-b945-eda88ab0e19e', u.UserGUID, 1, 1, 0
from dbo.UserProfile u
where u.UserGUID = @userGUID
and not exists(select 1 from viewS3AclSimple acl where acl.UserGUID = u.UserGUID and acl.LootID = 'd62a6536-9bfb-4bde-b945-eda88ab0e19e')
end else begin
--remove user setup menu access if directly assigned
delete from S3SimplePermission where LootID = 'd62a6536-9bfb-4bde-b945-eda88ab0e19e' and IdentityGUID = @userGUID;
end
--sync security changes to system center
exec dbo.procS3MenuSecurityAfterSave
GO
---------------------------------------------
-- dbo.procSMCGetDatabaseGUID
CREATE PROCEDURE [dbo].[procSMCGetDatabaseGUID](
@ReturnVal uniqueidentifier OUTPUT
)
AS
BEGIN
declare @SMC_SERVER nvarchar(128);
declare @SMC_DB nvarchar(128);
declare @DatabaseGUID uniqueidentifier;
select @SMC_SERVER = Setting from DBSetting where Name = 'SMC_PRIMARY_SERVER'
select @SMC_DB = setting from DBSetting where Name = 'SMC_PRIMARY_DATABASE'
if (@SMC_SERVER is null)
begin
print 'SMC_PRIMARY_SERVER NOT SET.';
return;
end
if (@SMC_DB is null)
begin
print 'SMC_PRIMARY_DATABASE NOT SET.';
return;
end
declare @sql nvarchar(max);
set @sql = '
select
@DBGUID_OUT = DatabaseGUID
from [' + @SMC_SERVER + '].[' + @SMC_DB + '].[dbo].[viewDatabaseInfo]
where (LinkedServerName = ''' + @@SERVERNAME + ''' OR LinkedServerName = ''' + @@SERVERNAME + '.sdt.local'' OR LinkedServerName = ''' + replace(@@SERVERNAME, '\', '.sdt.local\') + ''' OR replace(LinkedServerName, ''.sdt.local\'', ''\'') = ''' + @@SERVERNAME + ''') AND PhysicalName = ''' + DB_NAME() + '''
'
EXECUTE sp_executesql
@sql,
N'@DBGUID_OUT uniqueidentifier OUTPUT',
@DBGUID_OUT=@DatabaseGUID OUTPUT;
SELECT @ReturnVal = @DatabaseGUID;
END
GO
---------------------------------------------
-- dbo.procSR2EnsureBoundYearAlign
create proc dbo.procSR2EnsureBoundYearAlign
as
--make sure year on bounds data matches year on corresponding model data, in case model year structure changed
declare @datatable nvarchar(100)
declare @boundstable nvarchar(100)
declare @sql nvarchar(max)
declare crsTables cursor fast_forward for
select s.name + '.' + replace(t.name, 'Bounds', '') as DataTableName, s.name + '.' + t.name as BoundsTableName from sys.tables t inner join sys.schemas s on s.schema_id = t.schema_id where t.name like '%bounds'
open crsTables
fetch next from crsTables into @datatable, @boundstable
while(@@fetch_status = 0) begin
set @sql = '
update b set b.FiscalYearID = f.FiscalYearID
from
' + @boundstable + ' b
inner join ' + @datatable + ' f on f.RowID = b.RowID
where
b.FiscalYearID != f.FiscalYearID
'
BEGIN TRY
exec(@sql)
END TRY
BEGIN CATCH
--LOL
END CATCH
fetch next from crsTables into @datatable, @boundstable
end
close crsTables
deallocate crsTables
GO
---------------------------------------------
-- dbo.procSR2EnsurePlanFillinCache
create proc dbo.procSR2EnsurePlanFillinCache
@planGUIDList nvarchar(max) = ''
as
if (@planguidList = '') begin
update fi set fi.FillinMemberName = p.Name
from
[dbo].[ScoreFillin] fi
inner join [dbo].[XPlan] p with (readuncommitted) on p.PlanGUID = fi.FillinMemberGUID
where
fi.FillinMemberName != p.Name
exec [dbo].[procScoreFillinTableRefreshAll]
end else begin
if (exists(select 1 from [dbo].[ScoreFillin] fi with (readuncommitted) inner join [dbo].[XPlan] p with (readuncommitted) on p.PlanGUID = fi.FillinMemberGUID where p.PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@planGUIDList, ',')) and fi.FillinMemberName != p.Name)) begin
update fi set fi.FillinMemberName = p.Name
from
[dbo].[ScoreFillin] fi
inner join [dbo].[XPlan] p with (readuncommitted) on p.PlanGUID = fi.FillinMemberGUID
where
p.PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@planGUIDList, ','))
and fi.FillinMemberName != p.Name
exec [dbo].[procScoreFillinTableRefresh] @planGUIDList
end
end
GO
---------------------------------------------
-- dbo.procSR2RiskBinsCalculate
CREATE proc dbo.procSR2RiskBinsCalculate
@riskResultGUID uniqueidentifier,
@binCount int
as
set nocount on
declare @min decimal(19, 8)
declare @max decimal(19, 8)
declare @step decimal(19, 8)
select @min = coalesce((select MIN(Value) from [dbo].[SR2RiskResultDetail] where RiskResultGUID = @riskResultGUID), 0)
select @max = coalesce((select MAX(Value) from [dbo].[SR2RiskResultDetail] where RiskResultGUID = @riskResultGUID), 0)
set @step = ((@max - @min) / cast(@binCount as decimal(19, 8)))
if (@min = @max) begin
update [dbo].[SR2RiskResultDetail] set BinNumber = 0 where RiskResultGUID = @riskResultGUID
end else begin
declare @binIndex as int = 0
declare @binLowerBound as decimal(19, 8) = @min
while (@binIndex < @binCount) begin
update [dbo].[SR2RiskResultDetail] set BinNumber = @binIndex where RiskResultGUID = @riskResultGUID and Value >= @binLowerBound
set @binIndex = @binIndex + 1
set @binLowerBound = @binLowerBound + @step
end
end
GO
---------------------------------------------
-- dbo.procScoreAttributeIsModelDriverRefresh
create proc dbo.procScoreAttributeIsModelDriverRefresh
as
update [dbo].[ScoreAttribute] set IsModelDriver = 0
update [dbo].[ScoreAttribute] set IsModelDriver = 1 where exists(select 1 from [dbo].[MEScorePlaceholderLabel] phl (readuncommitted) where phl.FillinAttributeGUID = AttributeGUID)
GO
---------------------------------------------
-- dbo.procScoreAttributeSchemaUpdate
create proc procScoreAttributeSchemaUpdate
@attributeguid uniqueidentifier
as
update
sa
set
sa.CachedInferredSQLColumnType =sac.CachedInferredSQLColumnType,
sa.ColumnType =sac.ColumnType,
sa.ComputedValueDefinition =sac.ComputedValueDefinition,
sa.DefaultValueDefinition =sac.DefaultValueDefinition,
--sa.DimensionGroupIsTable =sac.DimensionGroupIsTable,
sa.ForeignKeyColumn =sac.ForeignKeyColumn,
sa.ForeignKeyOnDelete =sac.ForeignKeyOnDelete,
sa.ForeignKeySchema =sac.ForeignKeySchema,
sa.ForeignKeyTable =sac.ForeignKeyTable,
sa.IdentityIncrement =sac.IdentityIncrement,
sa.IdentitySeed =sac.IdentitySeed,
sa.IsColumnExist =sac.IsColumnExist,
sa.IsComputed =sac.IsComputed,
sa.IsForeignKeyed =sac.IsForeignKeyed,
sa.IsIdentity =sac.IsIdentity,
sa.IsNullable =sac.IsNullable,
sa.MaxLength =sac.MaxLength,
sa.Precision =sac.Precision,
sa.Scale =sac.Scale
from
ScoreAttribute sa
inner join viewScoreAttributeSchemaInfo sac on sa.AttributeGUID = sac.AttributeGUID
where
sa.AttributeGUID = @attributeguid
GO
---------------------------------------------
-- dbo.procScoreAttributeSchemaUpdateAll
CREATE proc [dbo].[procScoreAttributeSchemaUpdateAll] (
@DimensionGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
) as
update
sa
set
sa.CachedInferredSQLColumnType =sac.CachedInferredSQLColumnType,
sa.ColumnType =sac.ColumnType,
sa.ComputedValueDefinition =sac.ComputedValueDefinition,
sa.DefaultValueDefinition =sac.DefaultValueDefinition,
--sa.DimensionGroupIsTable =sac.DimensionGroupIsTable,
sa.ForeignKeyColumn =sac.ForeignKeyColumn,
sa.ForeignKeyOnDelete =sac.ForeignKeyOnDelete,
sa.ForeignKeySchema =sac.ForeignKeySchema,
sa.ForeignKeyTable =sac.ForeignKeyTable,
sa.IdentityIncrement =sac.IdentityIncrement,
sa.IdentitySeed =sac.IdentitySeed,
sa.IsColumnExist =sac.IsColumnExist,
sa.IsComputed =sac.IsComputed,
sa.IsForeignKeyed =sac.IsForeignKeyed,
sa.IsIdentity =sac.IsIdentity,
sa.IsNullable =sac.IsNullable,
sa.MaxLength =sac.MaxLength,
sa.Precision =sac.Precision,
sa.Scale =sac.Scale
from
ScoreAttribute sa
inner join ScoreDimensionGroup g on g.DimensionGroupGUID = sa.DimensionGroupGUID
inner join ScoreDimension d on d.DimensionGUID = g.DimensionGUID
inner join viewScoreAttributeSchemaInfo sac on sa.AttributeGUID = sac.AttributeGUID
where
(d.DimensionGUID = @DimensionGUID or @DimensionGUID = '00000000-0000-0000-0000-000000000000')
and
(sa.CachedInferredSQLColumnType <>sac.CachedInferredSQLColumnType or
sa.ColumnType <>sac.ColumnType or
sa.ComputedValueDefinition <>sac.ComputedValueDefinition or
sa.DefaultValueDefinition <>sac.DefaultValueDefinition or
--sa.DimensionGroupIsTable <>sac.DimensionGroupIsTable or
sa.ForeignKeyColumn <>sac.ForeignKeyColumn or
sa.ForeignKeyOnDelete <>sac.ForeignKeyOnDelete or
sa.ForeignKeySchema <>sac.ForeignKeySchema or
sa.ForeignKeyTable <>sac.ForeignKeyTable or
sa.IdentityIncrement <>sac.IdentityIncrement or
sa.IdentitySeed <>sac.IdentitySeed or
sa.IsColumnExist <>sac.IsColumnExist or
sa.IsComputed <>sac.IsComputed or
sa.IsForeignKeyed <>sac.IsForeignKeyed or
sa.IsIdentity <>sac.IsIdentity or
sa.IsNullable <>sac.IsNullable or
sa.MaxLength <>sac.MaxLength or
sa.Precision <>sac.Precision or
sa.Scale <>sac.Scale )
RETURN
GO
---------------------------------------------
-- dbo.procScoreAttributeSettingAddMissing
CREATE proc [dbo].[procScoreAttributeSettingAddMissing]
as
--non-inferred attributes default based on attribute-framework and dimension-framework linkages
insert into ScoreAttributeSetting (AttributeGUID, DimensionGUID, IsCustom, IsMarkedForDeletion, IsUsed, CAPIsUsed, DSSIsUsed, MRIsUsed, OBIsUsed, PRIsUsed, SPIsUsed)
select
a.AttributeGUID,
a.DimensionGUID,
0 as IsCustom,
0 as IsMarkedForDeletion,
(case when isnull(fw.FrameworkID, 0) != 0 then 1 when isnull(dss.FrameworkID, 0) != 0 then 1 when a.FriendlyName like 'DSS %' or a.FriendlyName like '% DSS' then 1 else 0 end) as IsUsed,
(case when isnull(fw.FrameworkID, 0) != 0 then 1 when isnull(cap.FrameworkID, 0) != 0 then 1 when a.FriendlyName like 'CAP %' or a.FriendlyName like '% CAP' or a.FriendlyName like 'Capital %' or a.FriendlyName like '% Capital' then 1 else 0 end) as CAPIsUsed,
(case when isnull(fw.FrameworkID, 0) != 0 then 1 when isnull(dss.FrameworkID, 0) != 0 then 1 when a.FriendlyName like 'DSS %' or a.FriendlyName like '% DSS' then 1 else 0 end) as DSSIsUsed,
(case when isnull(fw.FrameworkID, 0) != 0 then 1 when isnull(mr.FrameworkID, 0) != 0 then 1 when a.FriendlyName like 'MR %' or a.FriendlyName like '% MR' or a.FriendlyName like '% MR %' then 1 else 0 end) as MRIsUsed,
(case when isnull(ob.FrameworkID, 0) != 0 then 1 when a.FriendlyName like 'OB %' or a.FriendlyName like '% OB' then 1 else 0 end) as OBIsUsed,
(case when isnull(fw.FrameworkID, 0) != 0 then 1 when isnull(pr.FrameworkID, 0) != 0 then 1 when a.FriendlyName like 'PR %' or a.FriendlyName like '% PR' or a.FriendlyName like '% PR %' or a.FriendlyName like 'PI %' or a.FriendlyName like '% PI' or a.FriendlyName like '% PI %' then 1 else 0 end) as PRIsUsed,
(case when isnull(fw.FrameworkID, 0) != 0 then 1 when isnull(sp.FrameworkID, 0) != 0 then 1 when a.FriendlyName like 'SP %' or a.FriendlyName like '% SP' then 1 else 0 end) as SPIsUsed
from
viewScoreAttribute a
left join viewScoreAttributeFramework fw on fw.AttributeGUID = a.AttributeGUID and fw.FrameworkID = 0
left join viewScoreAttributeFramework cap on cap.AttributeGUID = a.AttributeGUID and cap.FrameworkID = 1
left join viewScoreAttributeFramework dss on dss.AttributeGUID = a.AttributeGUID and dss.FrameworkID = 6
left join viewScoreAttributeFramework mr on mr.AttributeGUID = a.AttributeGUID and mr.FrameworkID = 3
left join viewScoreAttributeFramework ob on ob.AttributeGUID = a.AttributeGUID and ob.FrameworkID = 2
left join viewScoreAttributeFramework pr on pr.AttributeGUID = a.AttributeGUID and pr.FrameworkID = 5
left join viewScoreAttributeFramework sp on sp.AttributeGUID = a.AttributeGUID and sp.FrameworkID = 4
where
not exists(select 1 from ScoreAttributeSetting sa where sa.AttributeGUID = a.AttributeGUID)
and a.InferredAttributeGUID = '00000000-0000-0000-0000-000000000000'
--inferred attributes just pull from their parent attribute, except for Department
insert into ScoreAttributeSetting (AttributeGUID, DimensionGUID, IsCustom, IsMarkedForDeletion, IsUsed, CAPIsUsed, DSSIsUsed, MRIsUsed, OBIsUsed, PRIsUsed, SPIsUsed)
select
a.AttributeGUID,
a.DimensionGUID,
pas.IsCustom,
0 as IsMarkedForDeletion,
pas.IsUsed,
pas.CAPIsUsed,
pas.DSSIsUsed,
pas.MRIsUsed,
pas.OBIsUsed,
pas.PRIsUsed,
pas.SPIsUsed
from
viewScoreAttribute a
inner join ScoreAttributeSetting pas on pas.AttributeGUID = a.InferredAttributeGUID
where
not exists(select 1 from ScoreAttributeSetting sa where sa.AttributeGUID = a.AttributeGUID)
and a.InferredAttributeGUID != '00000000-0000-0000-0000-000000000000'
and a.DimensionName != 'Department'
update sas set
sas.IsCustom = pas.IsCustom,
sas.IsUsed = pas.IsUsed,
sas.CAPIsUsed = pas.CAPIsUsed,
sas.DSSIsUsed = pas.DSSIsUsed,
sas.MRIsUsed = pas.MRIsUsed,
sas.OBIsUsed = pas.OBIsUsed,
sas.PRIsUsed = pas.PRIsUsed,
sas.SPIsUsed = pas.SPIsUsed
from
viewScoreAttribute a
inner join ScoreAttributeSetting sas on sas.AttributeGUID = a.AttributeGUID
inner join ScoreAttributeSetting pas on pas.AttributeGUID = a.InferredAttributeGUID
where
a.InferredAttributeGUID != '00000000-0000-0000-0000-000000000000'
and a.DimensionName != 'Department'
and (
sas.IsCustom != pas.IsCustom or
sas.IsUsed != pas.IsUsed or
sas.CAPIsUsed != pas.CAPIsUsed or
sas.DSSIsUsed != pas.DSSIsUsed or
sas.MRIsUsed != pas.MRIsUsed or
sas.OBIsUsed != pas.OBIsUsed or
sas.PRIsUsed != pas.PRIsUsed or
sas.SPIsUsed != pas.SPIsUsed
)
update sas
set sas.PRIsUsed=1, sas.MRIsUsed=1
from
scoreattributesetting sas
join scoreattribute attr on sas.AttributeGUID = attr.AttributeGUID
join ScoreDimensionGroup gr on attr.DimensionGroupGUID = gr.DimensionGroupGUID
join ScoreDimension dim on dim.DimensionGUID = gr.DimensionGUID
where
dim.FriendlyName='MR Department'
and (sas.PRIsUsed=0 or sas.MRIsUsed=0)
GO
---------------------------------------------
-- dbo.procScoreAttributeSettingSetFromDI
CREATE proc dbo.procScoreAttributeSettingSetFromDI
as
with diUsage as (
select
x.AttributeGUID
,max(case when x.FrameworkID in(0, 1) then 1 else 0 end) as CAPIsUsed
,max(case when x.FrameworkID in(0, 2) then 1 else 0 end) as OBIsUsed
,max(case when x.FrameworkID in(0, 3) then 1 else 0 end) as MRIsUsed
,max(case when x.FrameworkID in(0, 4) then 1 else 0 end) as SPIsUsed
,max(case when x.FrameworkID in(0, 5) then 1 else 0 end) as PRIsUsed
,max(case when x.FrameworkID in(0, 6) then 1 else 0 end) as DSSIsUsed
,max(case when x.FrameworkID in(0, 6) then 1 else 0 end) as IsUsed
from (
select
dif.ScoreKeyGUID as AttributeGUID,
c.FrameworkID
from
IntConfig c
inner join IntDataInterfaceSection dis on dis.DataInterfaceID = c.DataInterfaceID
inner join IntDataInterfaceField dif on dif.DataInterfaceSectionID = dis.DataInterfaceSectionID
where
datediff(day, c.LastRunAtUtc, getutcdate()) <= 120
and dif.IsHidden = 0
union all
select
dif.GivenScoreAttributeGUID as AttributeGUID,
c.FrameworkID
from
IntConfig c
inner join IntDataInterfaceSection dis on dis.DataInterfaceID = c.DataInterfaceID
inner join IntDataInterfaceField dif on dif.DataInterfaceSectionID = dis.DataInterfaceSectionID
where
datediff(day, c.LastRunAtUtc, getutcdate()) <= 120
and dif.IsHidden = 0
) x
group by x.AttributeGUID
)
update s set s.IsUsed = (case when di.IsUsed = 1 then 1 else s.IsUsed end), s.CAPIsUsed = (case when di.CAPIsUsed = 1 then 1 else s.CAPIsUsed end), s.OBIsUsed = (case when di.OBIsUsed = 1 then 1 else s.OBIsUsed end), s.MRIsUsed = (case when di.MRIsUsed = 1 then 1 else s.MRIsUsed end), s.SPIsUsed = (case when di.SPIsUsed = 1 then 1 else s.SPIsUsed end), s.PRIsUsed = (case when di.PRIsUsed = 1 then 1 else s.PRIsUsed end), s.DSSIsUsed = (case when di.DSSIsUsed = 1 then 1 else s.DSSIsUsed end)
from
ScoreAttributeSetting s
inner join diUsage di on di.AttributeGUID = s.AttributeGUID
exec dbo.procScoreAttributeSettingAddMissing
GO
---------------------------------------------
-- dbo.procScoreClearLootRefreshTriggers
--Forward
create procedure [dbo].[procScoreClearLootRefreshTriggers](
@DimensionGUID uniqueidentifier
)
AS
BEGIN
declare crsCursor CURSOR LOCAL FAST_FORWARD FOR
select SchemaName, Name from ViewSysTriggers
where Name like '%' + [dbo].GetScoreLootRefreshTriggerName(@DimensionGUID) + '%'
open crsCursor;
declare @SchemaName sysname;
declare @TriggerName sysname;
FETCH NEXT FROM crsCursor into @SchemaName, @TriggerName
WHILE (@@FETCH_STATUS = 0)
BEGIN
exec procSysDropTrigger @SchemaName, @TriggerName
FETCH NEXT FROM crsCursor into @SchemaName, @TriggerName
END
close crsCursor;
DEALLOCATE crsCursor;
END
RETURN
GO
---------------------------------------------
-- dbo.procScoreCompositeModifiedAt
--Author: gforeman
--Branch: Firefly
--Forward
CREATE proc [dbo].[procScoreCompositeModifiedAt]
@compositeguid uniqueidentifier
as
select coalesce((select MAX(ModifiedAt) from
(
select sc.ModifiedAt from ScoreComposite sc where sc.CompositeGUID = @compositeguid
union all
select sl.ModifiedAt from ScoreCompositeLink sl where sl.CompositeGUID = @compositeguid
union all
select dt1.ModifiedAt from ScoreDataTable dt1 where dt1.DataTableGUID in(select sc.DataTableGUID1 from ScoreComposite sc where sc.CompositeGUID = @compositeguid)
union all
select sm1.ModifiedAt from ScoreMeasure sm1 where sm1.DataTableGUID in(select sc.DataTableGUID1 from ScoreComposite sc where sc.CompositeGUID = @compositeguid)
union all
select dtkl1.ModifiedAt from ScoreDataTableKeyLink dtkl1 where dtkl1.DataTableGUID in(select sc.DataTableGUID1 from ScoreComposite sc where sc.CompositeGUID = @compositeguid)
union all
select sa1.DateModified as ModifiedAt from ScoreAttribute sa1 where sa1.AttributeGUID in(select dtkl1.KeyGUID from ScoreDataTableKeyLink dtkl1 where dtkl1.DataTableGUID in(select sc.DataTableGUID1 from ScoreComposite sc where sc.CompositeGUID = @compositeguid))
union all
select dt2.ModifiedAt from ScoreDataTable dt2 where dt2.DataTableGUID in(select sc.DataTableGUID2 from ScoreComposite sc where sc.CompositeGUID = @compositeguid)
union all
select sm2.ModifiedAt from ScoreMeasure sm2 where sm2.DataTableGUID in(select sc.DataTableGUID2 from ScoreComposite sc where sc.CompositeGUID = @compositeguid)
union all
select dtkl2.ModifiedAt from ScoreDataTableKeyLink dtkl2 where dtkl2.DataTableGUID in(select sc.DataTableGUID2 from ScoreComposite sc where sc.CompositeGUID = @compositeguid)
union all
select sa2.DateModified as ModifiedAt from ScoreAttribute sa2 where sa2.AttributeGUID in(select dtkl2.KeyGUID from ScoreDataTableKeyLink dtkl2 where dtkl2.DataTableGUID in(select sc.DataTableGUID2 from ScoreComposite sc where sc.CompositeGUID = @compositeguid))
) x
), getdate()) --return current date if invalid guid passed
GO
---------------------------------------------
-- dbo.procScoreCopyComposite
CREATE PROCEDURE [dbo].[procScoreCopyComposite] (
@CompositeGUID uniqueidentifier,
@TargetDatabase varchar(4000), -- [Server].[Database] for example: [ittestserv01\sql2005].[TSMChampaign]
@IsIncludeData bit = 0,
@IsDebugOnly bit = 0
)
AS
--Copy Both DataTables (does not need dynamic sql)
declare @DataTable1GUID uniqueidentifier;
declare @DataTable2GUID uniqueidentifier;
select @DataTable1GUID = DataTableGUID1, @DataTable2GUID = DataTableGUID2 from ScoreComposite where CompositeGUID = @CompositeGUID;
execute [dbo].procScoreCopyDataTable @DataTable1GUID, @TargetDatabase, @IsIncludeData, @IsDebugOnly;
execute [dbo].procScoreCopyDataTable @DataTable2GUID, @TargetDatabase, @IsIncludeData, @IsDebugOnly;
---Now register the composite and copy composite links (requiring dynamic sql)
declare @sql varchar(max)
set @sql = '
declare @TargetDatabase varchar(4000);
declare @CompositeGUID uniqueidentifier;
declare @Source_FriendlyName nvarchar(max);
declare @Target_Count int;
set @CompositeGUID = ''' + Cast(@CompositeGUID as varchar(64)) + ''';
set @TargetDatabase = ''' + @TargetDatabase + ''';
--Check for Existence
select @Source_FriendlyName = FriendlyName from dbo.ScoreComposite
WHERE CompositeGUID = @CompositeGUID
SELECT @Target_Count = COUNT(*) from ' + @TargetDatabase + '.[dbo].[ScoreComposite]
WHERE CompositeGUID = @CompositeGUID Or FriendlyName = @Source_FriendlyName;
if (@Target_Count > 0)
BEGIN
print ''Composite Exists in Target Database'';
RETURN;
END
--Copy Composite into new table
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreComposite]
(CompositeGUID,DataTableGUID1,DataTableGUID2,IsWrittenToDB,FriendlyName)
SELECT top 1
CompositeGUID,DataTableGUID1,DataTableGUID2,IsWrittenToDB,FriendlyName
from dbo.ScoreComposite WHERE CompositeGUID = @CompositeGUID;
--Copy CompositeLinks into new table (have to account for Identity..so do this custom columns
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreCompositeLink]
(CompositeGUID,CompositeLinkGUID,IsFixedIndex,IsPlaceholder,Key1AttributeGUID,Key1GUID,Key2AttributeGUID,Key2GUID,PlaceholderIndexMeasureGUID,SQLCustomLinkExpression,Type)
SELECT
LINK.CompositeGUID,LINK.CompositeLinkGUID,LINK.IsFixedIndex,LINK.IsPlaceholder,LINK.Key1AttributeGUID,FK1.AttributeGUID,LINK.Key2AttributeGUID,FK2.AttributeGUID,LINK.PlaceholderIndexMeasureGUID,LINK.SQLCustomLinkExpression,LINK.Type
from
[dbo].[ScoreCompositeLink] LINK
inner join viewScoreAttribute K1 on K1.AttributeGUID = LINK.Key1GUID
inner join viewScoreAttribute K2 on K2.AttributeGUID = LINK.Key2GUID
left join ' + @TargetDatabase + '.[dbo].[viewScoreAttribute] FK1 on FK1.SQLColumnName = K1.SQLColumnName and FK1.DimensionName = K1.DimensionName
left join ' + @TargetDatabase + '.[dbo].[viewScoreAttribute] FK2 on FK2.SQLColumnName = K2.SQLColumnName and FK2.DimensionName = K2.DimensionName
where CompositeGUID=@CompositeGUID
'
print @sql;
if @IsDebugOnly = 0
BEGIN
exec (@sql);
END
GO
---------------------------------------------
-- dbo.procScoreCopyDataTable
CREATE PROCEDURE [dbo].[procScoreCopyDataTable] (
@DataTableGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@TargetDatabase varchar(4000), -- [Server].[Database] for example: [ittestserv01\sql2005].[TSMChampaign]
@IsIncludeData bit = 0,
@IsDebugOnly bit = 0,
@aFriendlyName varchar(max) = ''
)
AS
if (@aFriendlyName <> '')
BEGIN
print 'Recursive Call';
declare @DTGUID uniqueidentifier;
select @DTGUID=DatatableGUID from ScoreDatatable where FriendlyName = @aFriendlyName;
exec dbo.procScoreCopyDataTable @DTGUID, @TargetDatabase, @IsIncludeData, @IsDebugOnly;
RETURN;
END
print ' Copying Dimensions '
--First Must Copy all dimensions that are a part of this datatable (have keys)
-- this does not require dynamic sql
DECLARE DimensionCursor CURSOR FOR
SELECT Distinct(DimensionGUID), (select count(*) from [dbo].[viewScoreAttribute] A where A.DimensionGUID = D.DimensionGUID) as AttributeCount from ScoreDimension D where
D.DimensionGUID IN (
--ALL DIMENSIONS IN DT
select DIM.DimensionGUID from ScoreDataTable DT
inner join ScoreDataTableKeyLink DTKEYLINK on DT.DataTableGUID = DTKEYLINK.DataTableGUID
inner join viewScoreAttribute ATT on ATT.AttributeGUID = DTKEYLINK.KeyGUID
inner join ScoreDimension DIM on DIM.DimensionGUID = ATT.DimensionGUID
where DT.DataTableGUID = @DataTableGUID
UNION
--INCLUDE FK_DIMENSIONS OF ANY ATTRIBUTES
select DIM_FK.DimensionGUID from ScoreDataTable DT
inner join ScoreDataTableKeyLink DTKEYLINK on DT.DataTableGUID = DTKEYLINK.DataTableGUID
inner join viewScoreAttribute ATT on ATT.AttributeGUID = DTKEYLINK.KeyGUID
inner join ScoreDimension DIM on DIM.DimensionGUID = ATT.DimensionGUID
inner join viewScoreAttribute ATT_FK on ATT.ForeignKeyGUID = ATT_FK.AttributeGUID
inner join ScoreDimension DIM_FK on ATT_FK.DimensionGUID = DIM_FK.DimensionGUID
where DT.DataTableGUID = @DataTableGUID)
order by AttributeCount asc -- do smaller dimensions first, as presumably the larger dimensions depend on them
Open DimensionCursor
declare @DimGUID uniqueidentifier
declare @AttrCount int
FETCH NEXT FROM DimensionCursor INTO @DimGUID, @AttrCount
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXECUTE dbo.procScoreCopyDimension @DimGUID, @TargetDatabase, @IsIncludeData, @IsDebugOnly;
FETCH NEXT FROM DimensionCursor INTO @DimGUID, @AttrCount
END
CLOSE DimensionCursor
DEALLOCATE DimensionCursor
declare @SQLSchemaName varchar(max);
declare @SQLObjectName varchar(max);
select @SQLSchemaName = SQLSchemaName,
@SQLObjectName = SQLObjectName
from ScoreDataTable where DataTableGUID = @DataTableGUID;
print ' Copying Datatable '
declare @sql varchar(max)
set @sql = '
declare @TargetDatabase varchar(4000);
declare @DataTableGUID uniqueidentifier;
declare @Source_FriendlyName nvarchar(max);
declare @Target_Count int;
set @DataTableGUID = ''' + Cast(@DataTableGUID as varchar(64)) + ''';
set @TargetDatabase = ''' + @TargetDatabase + ''';
--Check for Existence
select @Source_FriendlyName = FriendlyName from dbo.ScoreDataTable
WHERE DataTableGUID = @DataTableGUID
select @Target_Count = COUNT(*) from ' + @TargetDatabase + '.[dbo].[ScoreDataTable]
WHERE DataTableGUID = @DataTableGUID Or FriendlyName = @Source_FriendlyName;
if (@Target_Count > 0)
BEGIN
print ''DataTable Exists in Target Database'';
RETURN;
END
--Copy DataTable into new table
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreDataTable]
(DataTableGUID,FriendlyName,Description,SQLSchemaName,SQLObjectName,SQLTableAlias,IsWrittenToDB,DisplayFormatAttributeGUID,GlobalID,IsCompositeMappingTable,IsCompositeBoundsTable,FrameworkID,IsWrittenIfZero)
SELECT top 1
DataTableGUID,FriendlyName,Description,SQLSchemaName,SQLObjectName,SQLTableAlias,IsWrittenToDB,DisplayFormatAttributeGUID,GlobalID,IsCompositeMappingTable,IsCompositeBoundsTable,FrameworkID,IsWrittenIfZero
from dbo.ScoreDataTable WHERE DataTableGUID = @DataTableGUID;
--Copy KeyLinks into new table
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreDataTableKeyLink]
(DataTableKeyLinkGUID,DataTableGUID,KeyGUID)
SELECT
LINK.DataTableKeyLinkGUID,LINK.DataTableGUID,FK1.AttributeGUID
FROM dbo.ScoreDataTableKeyLink LINK
inner join viewScoreAttribute K1 on K1.AttributeGUID = LINK.KeyGUID
left join ' + @TargetDatabase + '.[dbo].[viewScoreAttribute] FK1 on FK1.SQLColumnName = K1.SQLColumnName and FK1.DimensionName = K1.DimensionName
WHERE DataTableGUID = @DataTableGUID;
--Copy Measures into new table
declare @measureWhere nvarchar(450)
set @measureWhere = ''DataTableGUID = '''''' + cast(@DataTableGUID as nvarchar(36)) + ''''''''
exec ' + @TargetDatabase + '.dbo.procMigrateScriptGetByTable ''dbo'', ''[' + cast(SERVERPROPERTY('SERVERNAME') as varchar(4000)) + '].[' + DB_NAME() + ']'', ''ScoreMeasure'', @measureWhere, 1
--Never Copy Data but always Copy the Schema
-- DONT DO THIS ANYMORE, SYNC FIRST
--EXEC ' + @TargetDatabase + '.[dbo].[procLinkedTransferDataBetweenTables] ''[' + cast(SERVERPROPERTY('SERVERNAME') as varchar(4000)) + '].[' + DB_NAME() + '].' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ''',''' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + '''
-- ,'' 1=0 '';
';
print @sql;
if @IsDebugOnly = 0
BEGIN
exec (@sql);
END
GO
---------------------------------------------
-- dbo.procScoreCopyDimension
CREATE PROCEDURE [dbo].[procScoreCopyDimension] (
@DimensionGUID uniqueidentifier='00000000-0000-0000-0000-000000000000',
@TargetDatabase varchar(4000), -- [Server].[Database] for example: [ittestserv01\sql2005].[TSMChampaign]
@IsIncludeData bit = 0,
@IsDebugOnly bit = 0,
@IsIncludeForeignKeyDimensions bit = 0,
@IsBuildingTables bit = 0
)
AS
if (@DimensionGUID = '00000000-0000-0000-0000-000000000000')
BEGIN
RETURN;
END
--Dont want to framework transfer account ph if missing, as it conflicts with ob account ph - everyone will have one or the other already
if (exists (select 1 from [dbo].[ScoreDimension] (nolock) where DimensionGUID = @DimensionGUID and FriendlyName = 'Account PH')) begin return end
print 'Copying Dimension';
declare @SQLSchemaName nvarchar(128);
declare @SQLObjectName nvarchar(max);
select
@SQLSchemaName = SQLSchemaName,
@SQLObjectName = SQLObjectName
from [dbo].[ScoreDimension] where DimensionGUID = @DimensionGUID
--Check Foreign Key Dimensions
if (@IsIncludeForeignKeyDimensions = 1)
begin
declare crsCursor CURSOR FAST_FORWARD LOCAL FOR
select distinct FKD.DimensionGUID, FKD.FriendlyName from ScoreDimension D
inner join viewScoreAttribute A on A.DimensionGUID = D.DimensionGUID
inner join viewScoreAttribute FKA on FKA.AttributeGUID = A.ForeignKeyGUID
inner join ScoreDimension FKD on FKD.DimensionGUID = FKA.DimensionGUID
where D.DimensionGUID = @DimensionGUID
open crsCursor;
declare @fkDimGUID uniqueidentifier;
declare @fkName varchar(max);
FETCH NEXT FROM crsCursor into @fkDimGUID, @fkName;
WHILE (@@FETCH_STATUS = 0)
BEGIN
print 'Copying Foreign Key Dimension: ' + @fkName;
exec procScoreCopyDimension @fkDimGUID, @TargetDatabase, @IsIncludeData, @IsDebugOnly, @IsBuildingTables;
FETCH NEXT FROM crsCursor into @fkDimGUID, @fkName
END
close crsCursor;
DEALLOCATE crsCursor;
end
if (@IsBuildingTables = 1 or @IsIncludeData = 1) begin
declare @GroupSchema nvarchar(128);
declare @GroupObject nvarchar(128);
declare grpCursor CURSOR FAST_FORWARD LOCAL FOR
select G.SchemaName, G.ObjectName from ScoreDimension D
inner join ScoreDimensionGroup G on D.DimensionGUID = G.DimensionGUID
where D.DimensionGUID = @DimensionGUID
open grpCursor;
FETCH NEXT FROM grpCursor into @GroupSchema, @GroupObject;
WHILE (@@FETCH_STATUS = 0)
BEGIN
declare @remoteSQL varchar(max);
set @remoteSQL = '';
--disallow building a view
if (@IsBuildingTables = 1 and dbo.IsView(@GroupSchema,@GroupObject) = 0) begin
print 'Remotely Building Group Table: ' + '[' + @GroupSchema + '].[' + @GroupObject + ']''';
set @remoteSQL = @remoteSQL + ' exec ' + @TargetDatabase + '.[sqlgen].procCopyRemoteTable ''[' + cast(SERVERPROPERTY('SERVERNAME') as varchar(4000)) + '].[' + DB_NAME() + ']'', ''' + @GroupSchema + ''', ''' + @GroupObject + ''';
'
end
--attempt to transfer regardless
if (@IsIncludeData = 1) begin
print 'Transfering Data to ' + '[' + @GroupSchema + '].[' + @GroupObject + ']''';
set @remoteSQL = @remoteSQL + ' EXEC ' + @TargetDatabase + '.[dbo].[procLinkedTransferDataBetweenTables] ''[' + cast(SERVERPROPERTY('SERVERNAME') as varchar(4000)) + '].[' + DB_NAME() + '].' + (select [dbo].[GetSQLTableExpression](@GroupSchema, @GroupObject)) + ''',''' + (select [dbo].[GetSQLTableExpression](@GroupSchema, @GroupObject)) + '''';
end
print @remoteSQL;
if (@IsDebugOnly = 0) begin
exec (@remoteSQL);
end
FETCH NEXT FROM grpCursor into @GroupSchema, @GroupObject;
END
close grpCursor;
DEALLOCATE grpCursor;
end
declare @sql varchar(max)
set @sql = '
declare @DimensionGUID uniqueidentifier;
set @DimensionGUID = ''' + Cast(@DimensionGUID as varchar(64)) + ''';
declare @IsIncludeData bit;
set @IsIncludeData = ' + Cast(@IsIncludeData as varchar) + ';
declare @Target_Count int;
declare @Source_FriendlyName nvarchar(max);
select @Source_FriendlyName = FriendlyName from [dbo].[ScoreDimension] where DimensionGUID = @DimensionGUID;
select @Target_Count = Count(*) from ' + @TargetDatabase + '.[dbo].[ScoreDimension]
where DimensionGUID = @DimensionGUID OR FriendlyName = @Source_FriendlyName;
if (@Target_Count > 0)
BEGIN
print ''Dimension Exists in Target Database''
Return;
END
--Copy Dimension into new table
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreDimension]
( DimensionGUID,
FriendlyName,
Description,
SQLTableAlias,
DefaultKeyGUID,
DefaultHierarchyGUID,
DefaultLookupKeyGUID,
IsSecured,
PermissionSetID,
SQLSchemaName,
SQLObjectName,
DefaultMemberGUID,
IsSysAdminOnly,
IsAllowMemberDelete,
IsAllowMemberAdd,
PrimaryGroupGUID,
IsStock,
DateModified,
PickerType,
IsSharingSecurity ,
DimensionVersion
)
SELECT top 1
DimensionGUID,
FriendlyName,
Description,
SQLTableAlias,
DefaultKeyGUID,
DefaultHierarchyGUID,
DefaultLookupKeyGUID,
IsSecured,
PermissionSetID,
SQLSchemaName,
SQLObjectName,
DefaultMemberGUID,
IsSysAdminOnly,
IsAllowMemberDelete,
IsAllowMemberAdd,
PrimaryGroupGUID,
IsStock,
DateModified,
PickerType,
IsSharingSecurity,
DimensionVersion
from dbo.ScoreDimension WHERE DimensionGUID = @DimensionGUID;
-- Copy Dimension Groups
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreDimensionGroup]
(DimensionGroupGUID, DimensionGUID, Name, Description, SchemaName, ObjectName, IsStock, DateModified)
SELECT
DimensionGroupGUID, DimensionGUID, Name, Description, SchemaName, ObjectName, IsStock, DateModified
from dbo.ScoreDimensionGroup WHERE DimensionGUID = @DimensionGUID;
--Copy Attributes into new table
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreAttribute]
(AttributeGUID,
DimensionGroupGUID,
FriendlyName,
IsWrittenToDB,
IsKey,
IsSecuredLootID,
IsSecuredLootGroupID,
SecuredLootGroupPrefix,
SQLColumnName,
DefaultSortAttributeGUID,
ForeignKeyGUID,
IsRequired,
SpecialAttributeIndex,
IsCopiedWithPlan,
DisplayOrder,
IsHidden,
DateModified,
AttributeType,
MetaXML,
InferredSourceGUID,
InferredColumnName,
InferredAttributeGUID,
HelpText,
ColumnType,
ComputedValueDefinition,
IsComputed,
IsIdentity,
IdentityIncrement,
IdentitySeed,
IsNullable,
DefaultValueDefinition,
Precision,
Scale,
MaxLength,
IsColumnExist,
IsForeignKeyed,
ForeignKeySchema,
ForeignKeyTable,
ForeignKeyColumn,
ForeignKeyOnDelete,
CachedInferredSQLColumnType,
IsFKAutoFilter,
JoinTypeVal
)
SELECT
A.AttributeGUID,
A.DimensionGroupGUID,
A.FriendlyName,
A.IsWrittenToDB,
A.IsKey,
A.IsSecuredLootID,
A.IsSecuredLootGroupID,
A.SecuredLootGroupPrefix,
A.SQLColumnName,
A.DefaultSortAttributeGUID,
A.ForeignKeyGUID,
A.IsRequired,
A.SpecialAttributeIndex,
A.IsCopiedWithPlan,
A.DisplayOrder,
A.IsHidden,
A.DateModified,
A.AttributeType,
A.MetaXML,
A.InferredSourceGUID,
A.InferredColumnName,
A.InferredAttributeGUID,
A.HelpText,
A.ColumnType,
A.ComputedValueDefinition,
A.IsComputed,
A.IsIdentity,
A.IdentityIncrement,
A.IdentitySeed,
A.IsNullable,
A.DefaultValueDefinition,
A.Precision,
A.Scale,
A.MaxLength,
A.IsColumnExist,
A.IsForeignKeyed,
A.ForeignKeySchema,
A.ForeignKeyTable,
A.ForeignKeyColumn,
A.ForeignKeyOnDelete,
A.CachedInferredSQLColumnType,
A.IsFKAutoFilter,
A.JoinTypeVal
from dbo.viewScoreAttribute A
inner join ScoreDimensionGroup G on G.DimensionGroupGUID = A.DimensionGroupGUID
inner join ScoreDimension D on D.DimensionGUID = G.DimensionGUID
WHERE D.DimensionGUID = @DimensionGUID;
--Copy Hierarchies
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreHierarchy]
(HierarchyGUID, DimensionGUID, FriendlyName, PathAlias, DateModified)
SELECT
HierarchyGUID, DimensionGUID, FriendlyName, PathAlias, DateModified
from dbo.ScoreHierarchy WHERE DimensionGUID = @DimensionGUID;
--Copy Hierarchy Attribute Links
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreHierarchyAttributeLink]
(HierarchyAttributeLinkGUID,
HierarchyGUID,
AttributeGUID,
DisplayAttributeGUID,
SortOrder,
IsDependentOnChild,
DateModified,
IsAttributeFiltered,
FilterAttributeGUID,
FilterString
)
SELECT
LINK.HierarchyAttributeLinkGUID,
LINK.HierarchyGUID,
LINK.AttributeGUID,
LINK.DisplayAttributeGUID,
LINK.SortOrder,
LINK.IsDependentOnChild,
LINK.DateModified,
LINK.IsAttributeFiltered,
LINK.FilterAttributeGUID,
LINK.FilterString
from ScoreHierarchyAttributeLink LINK
inner join viewScoreAttribute ATT on ATT.AttributeGUID = LINK.AttributeGUID
inner join ScoreDimension DIM on ATT.DimensionGUID = DIM.DimensionGUID
where DIM.DimensionGUID = @DimensionGUID;
--Copy Dimension Framework
INSERT INTO ' + @TargetDatabase + '.[dbo].[ScoreDimensionFramework]
(DimensionGUID,
FrameworkID
)
SELECT
DFW.DimensionGUID,
DFW.FrameworkID
FROM ScoreDimensionFramework DFW
WHERE DFW.DimensionGUID = @DimensionGUID;
--SIMPLE PERMISSIONS
if not exists (select 1 from ' + @TargetDatabase + '.[dbo].[S3SimplePermission] where LootID = @DimensionGUID and IdentityGUID = (select UserGroupGUID from ' + @TargetDatabase + '.[dbo].[UserGroup] where Name = ''Everyone'')) begin
insert into ' + @TargetDatabase + '.[dbo].[S3SimplePermission] (LootID, IdentityGUID, ReadValue, WriteValue, SecureValue)
VALUES (@DimensionGUID, (select UserGroupGUID from ' + @TargetDatabase + '.[dbo].[UserGroup] where Name = ''Everyone''), 1,1,1)
end
';
print @sql;
if @IsDebugOnly = 0
BEGIN
exec (@sql);
END
GO
---------------------------------------------
-- dbo.procScoreDataTableCreateParamTypes
create proc dbo.procScoreDataTableCreateParamTypes
@isDebug bit = 0
as
declare @dtguid uniqueidentifier
declare @sql nvarchar(max)
declare crsTables cursor fast_forward for
select
dt.DataTableGUID, '
if (exists(select 1 from sys.schemas s inner join sys.types t on t.schema_id = s.schema_id where s.name = ''' + dt.SQLSchemaName + ''' and t.name = ''' + dt.SQLObjectName + 'TableType'')) begin
drop type ' + dt.SQLSchemaName + '.' + dt.SQLObjectName + 'TableType;
end
create type ' + dt.SQLSchemaName + '.' + dt.SQLObjectName + 'TableType as table (
[RowID] int{0}
);'
from
dbo.ScoreDataTable dt
where
dt.FriendlyName not like '% Aggregate'
and exists(select 1 from dbo.ScoreComposite c where c.DataTableGUID2 = dt.DataTableGUID and exists(select 1 from EMFModelTemplateLinkSource emf where emf.ParentScoreCompositeTableGUID = c.CompositeGUID))
and exists(select 1 from dbo.ScoreMeasure m where m.DataTableGUID = dt.DataTableGUID and m.IsWrittenToDB = 1)
open crsTables
fetch next from crsTables into @dtguid, @sql
declare @measures nvarchar(max)
declare @measure nvarchar(max)
while (@@fetch_status = 0) begin
declare crsMeasures cursor fast_forward for
select m.ColName from (
select
', [' + m.SQLColumnName + '] ' + t.name + case when t.name = 'varchar' then '(' + cast(m.MaxLength as nvarchar(8)) + ')' when t.name = 'nvarchar' and m.MaxLength <= 4000 then '(' + cast(m.MaxLength as nvarchar(8)) + ')' when t.name = 'nvarchar' and m.MaxLength > 4000 then '(4000)' when t.name = 'decimal' then '(' + cast(m.Precision as nvarchar(8)) + ',' + cast(m.Scale as nvarchar(8)) + ')' else '' end as ColName
from
dbo.ScoreMeasure m
inner join sys.types t on t.system_type_id = m.ColumnTypeValue
where
m.IsWrittenToDB = 1
and m.DataTableGUID = @dtguid
and t.name != 'sysname'
union all
select
', [' + m.SpecialFormulaSQLColumnName + '] nvarchar(max)' as ColName
from
dbo.ScoreMeasure m
inner join sys.types t on t.system_type_id = m.ColumnTypeValue
where
m.IsWrittenToDB = 1
and m.DataTableGUID = @dtguid
and t.name != 'sysname'
and m.SpecialFormulaSQLColumnName != ''
union all
select
', [' + m.SpecialCommentSQLColumnName + '] nvarchar(max)' as ColName
from
dbo.ScoreMeasure m
inner join sys.types t on t.system_type_id = m.ColumnTypeValue
where
m.IsWrittenToDB = 1
and m.DataTableGUID = @dtguid
and t.name != 'sysname'
and m.SpecialCommentSQLColumnName != ''
) m
order by m.ColName
open crsMeasures
fetch next from crsMeasures into @measure
set @measures = ''
while (@@fetch_status = 0) begin
set @measures = @measures + @measure
fetch next from crsMeasures into @measure
end
close crsMeasures
deallocate crsMeasures
set @sql = replace(@sql, '{0}', @measures)
if (@isDebug = 0) begin
exec(@sql)
end else begin
print @sql
end
fetch next from crsTables into @dtguid, @sql
end
close crsTables
deallocate crsTables
GO
---------------------------------------------
-- dbo.procScoreDataTableEnsureDefaults
create proc procScoreDataTableEnsureDefaults
as
declare @sql nvarchar(max)
declare crsScripts cursor fast_forward for
select distinct
'ALTER TABLE ' + s.name + '.' + t.name + ' ADD CONSTRAINT DF_' + t.name + '_' + c.name + ' DEFAULT 0 FOR ' + c.name
from
sys.columns c
inner join sys.tables t on t.object_id = c.object_id
inner join sys.schemas s on s.schema_id = t.schema_id
inner join ScoreDataTable dt on dt.SQLObjectName = t.name and dt.SQLSchemaName = s.name
where
c.name like '%ID'
and c.name != 'RowID'
and system_type_id in(48, 52, 56)
and default_object_id = 0
open crsScripts
fetch next from crsScripts into @sql
while(@@FETCH_STATUS = 0) begin
exec(@sql)
fetch next from crsScripts into @sql
end
close crsScripts
deallocate crsScripts
GO
---------------------------------------------
-- dbo.procScoreDataTableKeyLinkSchemaUpdate
create proc [dbo].[procScoreDataTableKeyLinkSchemaUpdate]
@datatableguid uniqueidentifier = '00000000-0000-0000-0000-000000000000'
as
update
obj
set
obj.ColumnID = objschema.ColumnID,
obj.ColumnName = objschema.ColumnName,
obj.ColumnTypeValue = objschema.ColumnTypeValue,
obj.ComputedValueDefinition = objschema.ComputedValueDefinition,
obj.DefaultValueDefinition = objschema.DefaultValueDefinition,
obj.ForeignKeyColumn = objschema.ForeignKeyColumn,
obj.ForeignKeyOnDelete = objschema.ForeignKeyOnDelete,
obj.ForeignKeySchema = objschema.ForeignKeySchema,
obj.ForeignKeyTable = objschema.ForeignKeyTable,
obj.IdentityIncrement = objschema.IdentityIncrement,
obj.IdentitySeed = objschema.IdentitySeed,
obj.IsComputed = objschema.IsComputed,
obj.IsForeignKeyed = objschema.IsForeignKeyed,
obj.IsIdentity = objschema.IsIdentity,
obj.IsNullable = objschema.IsNullable,
obj.IsPartOfPrimaryKey = objschema.IsPartOfPrimaryKey,
obj.IsPartOfUniqueIndex = objschema.IsPartOfUniqueIndex,
obj.IsPrimaryKey = objschema.IsPrimaryKey,
obj.IsUniqueIndex = objschema.IsUniqueIndex,
obj.MaxLength = objschema.MaxLength,
obj.ObjectID = objschema.ObjectID,
obj.ObjectName = objschema.ObjectName,
obj.ObjectType = objschema.ObjectType,
obj.Precision = objschema.Precision,
obj.Scale = objschema.Scale,
obj.SchemaName = objschema.SchemaName
from
ScoreDataTableKeyLink obj
inner join viewScoreDataTableKeyLinkSchemaInfo objschema on obj.DataTableKeyLinkGUID = objschema.DataTableKeyLinkGUID
where
@datatableguid in (obj.datatableguid, dbo.zeroguid())
and (
obj.ColumnID <> objschema.ColumnID or
obj.ColumnName <> objschema.ColumnName or
obj.ColumnTypeValue <> objschema.ColumnTypeValue or
obj.ComputedValueDefinition <> objschema.ComputedValueDefinition or
obj.DefaultValueDefinition <> objschema.DefaultValueDefinition or
obj.ForeignKeyColumn <> objschema.ForeignKeyColumn or
obj.ForeignKeyOnDelete <> objschema.ForeignKeyOnDelete or
obj.ForeignKeySchema <> objschema.ForeignKeySchema or
obj.ForeignKeyTable <> objschema.ForeignKeyTable or
obj.IdentityIncrement <> objschema.IdentityIncrement or
obj.IdentitySeed <> objschema.IdentitySeed or
obj.IsComputed <> objschema.IsComputed or
obj.IsForeignKeyed <> objschema.IsForeignKeyed or
obj.IsIdentity <> objschema.IsIdentity or
obj.IsNullable <> objschema.IsNullable or
obj.IsPartOfPrimaryKey <> objschema.IsPartOfPrimaryKey or
obj.IsPartOfUniqueIndex <> objschema.IsPartOfUniqueIndex or
obj.IsPrimaryKey <> objschema.IsPrimaryKey or
obj.IsUniqueIndex <> objschema.IsUniqueIndex or
obj.MaxLength <> objschema.MaxLength or
obj.ObjectID <> objschema.ObjectID or
obj.ObjectName <> objschema.ObjectName or
obj.ObjectType <> objschema.ObjectType or
obj.Precision <> objschema.Precision or
obj.Scale <> objschema.Scale or
obj.SchemaName <> objschema.SchemaName
)
GO
---------------------------------------------
-- dbo.procScoreDataTableKeyLinkSchemaUpdateMissing
--Forward
create proc procScoreDataTableKeyLinkSchemaUpdateMissing
as
if ((select count(*) from [dbo].ScoreDataTableKeyLink where columnname = '') > 0) begin
declare @dtguid uniqueidentifier
declare crsTables cursor fast_forward for select DataTableGUID from [dbo].ScoreDataTableKeyLink where columnname = ''
open crsTables
fetch next from crsTables into @dtguid
while(@@fetch_status = 0) begin
exec [dbo].[procScoreDataTableKeyLinkSchemaUpdate] @dtguid
fetch next from crsTables into @dtguid
end
close crsTables
deallocate crsTables
end
RETURN
GO
---------------------------------------------
-- dbo.procScoreDeleteComposite
CREATE Procedure [dbo].[procScoreDeleteComposite]
(
@CompositeGUID uniqueidentifier
)
AS
print 'Deleting CompositeLinks';
DELETE FROM ScoreCompositeLink where CompositeGUID = @CompositeGUID;
print 'Deleting Composite';
DELETE FROM ScoreComposite where CompositeGUID = @CompositeGUID
GO
---------------------------------------------
-- dbo.procScoreDeleteCompositeFull
CREATE proc procScoreDeleteCompositeFull
@compositeGUID uniqueidentifier
as
begin try
begin transaction
declare @dt1g uniqueidentifier
declare @dt1schema sysname
declare @dt1name sysname
declare @dt2g uniqueidentifier
declare @dt2schema sysname
declare @dt2name sysname
select
@dt1g = dt1.DataTableGUID,
@dt1schema = dt1.SQLSchemaName,
@dt1name = dt1.SQLObjectName,
@dt2g = dt2.DataTableGUID,
@dt2schema = dt2.SQLSchemaName,
@dt2name = dt2.SQLObjectName
from
ScoreComposite sc
left join ScoreDataTable dt1 on sc.DataTableGUID1 = dt1.DataTableGUID
left join ScoreDataTable dt2 on sc.DataTableGUID2 = dt2.DataTableGUID
where
sc.CompositeGUID = @compositeGUID
--delete scorecomposite record
delete from ScoreComposite where CompositeGUID = @compositeGUID
print 'deleted composite reg'
--delete dt1 if unused by any composites
delete from ScoreDataTable where DataTableGUID = @dt1g and not exists (select 1 from ScoreComposite sc where sc.DataTableGUID1 = @dt1g or sc.DataTableGUID2 = @dt1g)
print 'deleted dt1 reg'
--delete dt2 if unused by any composites
delete from ScoreDataTable where DataTableGUID = @dt2g and not exists (select 1 from ScoreComposite sc where sc.DataTableGUID1 = @dt2g or sc.DataTableGUID2 = @dt2g)
print 'deleted dt2 reg'
declare @sql varchar(max)
--drop dt1 table if it exists
if dbo.TableExists(@dt1schema, @dt1name) = 1 begin
set @sql = 'drop table [' + @dt1schema + '].[' + @dt1name + ']'
exec (@sql)
print 'dropped dt1'
end
--drop dt2 table if it exists
if dbo.TableExists(@dt2schema, @dt2name) = 1 begin
set @sql = 'drop table [' + @dt2schema + '].[' + @dt2name + ']'
exec (@sql)
print 'dropped dt2'
end
commit
end try
begin catch
rollback
print 'error: ' + error_message()
exec procSysRethrowError
end catch
GO
---------------------------------------------
-- dbo.procScoreDeleteDataTable
CREATE Procedure [dbo].[procScoreDeleteDataTable]
(
@DataTableGUID uniqueidentifier,
@IsHardDelete bit = 0 ,
@DeleteInUse bit = 0
)
AS
declare @SchemaName nvarchar(128);
declare @ObjectName nvarchar(max);
select
@SchemaName = SQLSchemaName,
@ObjectName = SQLObjectName
from ScoreDataTable where DataTableGUID = @DataTableGUID;
if @SchemaName is null RETURN
if @objectname is null RETURN
IF ([dbo].[ScoreIsDataTableInUse](@DataTableGUID) = 1 AND @DeleteInUse = 0)
BEGIN
-- Do NOT allow this to happen under any circumstances
RAISERROR ('DataTable is in use. Cannot delete.',15,1);
RETURN
END
IF @DeleteInUse = 1 begin
print 'Deleting composites that use this datatable';
DELETE FROM ScoreComposite where DataTableGUID1 = @DataTableGUID
DELETE FROM ScoreComposite where DataTableGUID2 = @DataTableGUID
end
print 'Deleting DataTableKeyLinks';
DELETE FROM ScoreDataTableKeyLink where DataTableGUID = @DataTableGUID;
print 'Deleting Measures';
DELETE FROM ScoreMeasure where DataTableGUID = @DataTableGUID
print ' Deleting DataTable';
DELETE FROM ScoreDataTable where DataTableGUID = @DataTableGUID
if (@IsHardDelete = 1)
BEGIN
if ([dbo].[IsView](@SchemaName, @ObjectName) = 1)
BEGIN
print ' Cannot hard delete a view. Skipping. ';
END
ELSE
BEGIN
print ' Hard deleting datatable.';
declare @sql varchar(max);
set @sql = '
DELETE FROM ' + (select [dbo].[GetSQLTableExpression](@SchemaName, @ObjectName)) + ';
DROP TABLE ' + (select [dbo].[GetSQLTableExpression](@SchemaName, @ObjectName)) + ';
';
print @sql
print @schemaname
print @objectname
exec (@sql);
END
END
GO
---------------------------------------------
-- dbo.procScoreDeleteDimension
CREATE Procedure [dbo].[procScoreDeleteDimension]
(
@DimensionGUID uniqueidentifier,
@IsHardDelete bit = 0, --Hard Delete will remove the table as well.
@DeleteInUse bit = 0
)
AS
declare @SQLSchemaName nvarchar(128);
declare @SQLObjectName nvarchar(max);
select
@SQLSchemaName = SQLSchemaName,
@SQLObjectName = SQLObjectName
from ScoreDimension where DimensionGUID = @DimensionGUID;
IF ([dbo].[ScoreIsDimensionInUse](@DimensionGUID) = 1 and @DeleteInUse = 0)
BEGIN
-- Do NOT allow this to happen under any circumstances
RAISERROR ('Dimension is in use. Cannot delete.',15,1);
RETURN
END
print ' Deleting Hierarchy Records ';
DELETE FROM ScoreHierarchy where DimensionGUID = @DimensionGUID;
print ' Resetting FKs and DefaultSortAtts ';
--FKs and DefaultSortAttributeGUIDS
DECLARE AttributeCursor CURSOR FOR
SELECT A.AttributeGUID FROM ScoreAttribute A
inner join ScoreDimensionGroup G on G.DimensionGroupGUID = A.DimensionGroupGUID
inner join ScoreDimension D on D.DimensionGUID = G.DimensionGUID
where D.DimensionGUID = @DimensionGUID
OPEN AttributeCursor
DECLARE @AttGuid_i uniqueidentifier
FETCH NEXT FROM AttributeCursor INTO @AttGuid_i;
WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE ScoreAttribute
SET DefaultSortAttributeGUID = '00000000-0000-0000-0000-000000000000'
WHERE DefaultSortAttributeGUID = @AttGuid_i;
UPDATE ScoreAttribute
SET ForeignKeyGUID = '00000000-0000-0000-0000-000000000000'
WHERE ForeignKeyGUID = @AttGuid_i;
FETCH NEXT FROM AttributeCursor INTO @AttGuid_i;
END
CLOSE AttributeCursor;
DEALLOCATE AttributeCursor;
Print ' Deleting Attribute Records ';
--Note: Hierarchy Attribute links handled by Foreign Key delete in ScoreAttribute
DELETE A
FROM ScoreAttribute A
inner join ScoreDimensionGroup G on G.DimensionGroupGUID = A.DimensionGroupGUID
where G.DimensionGUID = @DimensionGUID;
--DELETE FROM ScoreAttribute where DimensionGUID = @DimensionGUID;
if (@IsHardDelete = 1)
begin
print 'Dropping Group Tables/Views';
declare @GroupSchema nvarchar(128);
declare @GroupObject nvarchar(128);
declare GroupCursor CURSOR LOCAL FAST_FORWARD FOR
SELECT SchemaName, ObjectName from ScoreDimensionGroup where DimensionGUID = @DimensionGUID;
OPEN GroupCursor
FETCH NEXT FROM GroupCursor INTO @GroupSchema,@GroupObject;
WHILE (@@FETCH_STATUS = 0)
BEGIN
if ([dbo].[IsView](@GroupSchema,@GroupObject) = 1)
begin
exec procSysDropView @GroupSchema, @GroupObject;
end
else
begin
exec procSysDropTable @GroupSchema, @GroupObject;
end
FETCH NEXT FROM GroupCursor INTO @GroupSchema,@GroupObject;
END
CLOSE GroupCursor;
DEALLOCATE GroupCursor;
end
Print ' Deleting Group Records';
DELETE FROM ScoreDimensionGroup where DimensionGUID = @DimensionGUID;
if (@IsHardDelete = 1)
BEGIN
if ([dbo].[IsView](@SQLSchemaName, @SQLObjectName) = 1)
BEGIN
print ' Hard Deleting Dimension View ';
exec procSysDropView @SQLSchemaName, @SQLObjectName;
END
ELSE
BEGIN
print ' Hard deleting dimension Table.';
exec procSysDropTable @SQLSchemaName, @SQLObjectName;
END
END
DELETE FROM dbo.ScoreDimensionFramework
WHERE DimensionGUID = @DimensionGUID;
print 'Deleting Dimension Record';
DELETE FROM ScoreDimension where DimensionGUID = @DimensionGUID;
GO
---------------------------------------------
-- dbo.procScoreDeleteOrphanedSecurityTriggers
create procedure [dbo].[procScoreDeleteOrphanedSecurityTriggers] (
@IsDebugOnly bit = 0
)
AS
BEGIN
--ORPHANED Triggers
declare crsCursor CURSOR FAST_FORWARD FOR
select
T.Name,
T.SchemaName
from viewSysTriggers T
left join ScoreDimension D on SUBSTRING(T.Name, 20, 32) = REPLACE(D.DimensionGUID,'-','')
where
T.Name like 'trg_ScoreDimension_%_LootRefresh%'
and D.FriendlyName is null
print 'The Following Score Loot Refresh Triggers are Orphaned (Dimension no longer exists):
';
open crsCursor;
DECLARE @triggerName nvarchar(128);
DECLARE @schemaName nvarchar(128);
declare @sql varchar(max);
set @sql = '';
FETCH NEXT FROM crsCursor into @triggerName, @schemaName
WHILE (@@FETCH_STATUS = 0)
BEGIN
PRINT ' [' + @schemaName + '].[' + @triggerName + ']';
set @sql = @sql + 'DROP TRIGGER [' + @schemaName + '].[' + @triggerName + '];
';
FETCH NEXT FROM crsCursor into @triggerName, @schemaName;
END
close crsCursor;
DEALLOCATE crsCursor;
print '';
print @sql;
if (@IsDebugOnly = 0)
BEGIN
exec (@sql);
END
END
GO
---------------------------------------------
-- dbo.procScoreDimensionCacheRefresh
CREATE proc [dbo].[procScoreDimensionCacheRefresh]
@dimensionGUID uniqueidentifier,
@whereClause nvarchar(max) = '',
@isDebug bit = 0,
@isNoRecurse bit = 0,
@isSecurityDirty bit = 0
AS
set nocount on
--caching not used by v2 dimensions
IF (exists (SELECT 1 FROM ScoreDimension with (readuncommitted) WHERE DimensionGUID = @dimensionGUID AND DimensionVersion = 3)) BEGIN
--grab basic dimension info
declare @sourceSchema nvarchar(100)
declare @sourceName nvarchar(450)
declare @cacheSchema nvarchar(100)
declare @cacheName nvarchar(450)
declare @objectid int
declare @isSecured bit
select
@sourceSchema = D.SQLSchemaName,
@sourceName = D.SQLObjectName + '_source',
@cacheSchema = DG.SchemaName,
@cacheName = DG.ObjectName,
@objectid = T.object_id,
@isSecured = D.IsSecured
from
ScoreDimension D with (readuncommitted)
inner join ScoreDimensionGroup DG with (readuncommitted) on DG.DimensionGroupGUID = D.PrimaryGroupGUID
inner join sys.tables T with (readuncommitted) on T.name = DG.ObjectName
inner join sys.schemas S with (readuncommitted) on S.name = DG.SchemaName and S.schema_id = T.schema_id
where
D.DimensionGUID = @dimensionGUID
declare @isUsingVersionColumn bit
if ((select COUNT(*) from sys.columns with (readuncommitted) where object_id = @objectid and name = 'Version') > 0) begin
set @isUsingVersionColumn = 1
end else begin
set @isUsingVersionColumn = 0
end
--get column info
declare @colName nvarchar(100)
declare crsColumns cursor fast_forward for
select
C.name
from
sys.columns C with (readuncommitted)
inner join sys.tables T with (readuncommitted) on T.object_id = C.object_id
inner join sys.schemas S with (readuncommitted) on S.schema_id = T.schema_id
inner join viewScoreAttribute A on A.SQLColumnName = C.name
where
T.name = @cacheName
and S.name = @cacheSchema
and A.DimensionGUID = @dimensionGUID
and A.IsWrittenToDB = 0
and A.AttributeType != 1
and A.SQLColumnName not in('MemberGUID', 'HistoryItemGUID')
and C.is_computed = 0
declare @colCount int
set @colCount = 0
--build the update script to populate non-editable columns in the cache
declare @fillSQL nvarchar(max) = ''
if (@isSecured = 1) begin
set @fillSQL = 'update dbo.ScoreDimension set IsSecurityTriggersEnabled = 0 where DimensionGUID = ''' + cast(@dimensionGUID as nvarchar(36)) + ''';
'
end
set @fillSQL = @fillSQL + 'update C set '
open crsColumns
fetch next from crsColumns into @colName
while (@@FETCH_STATUS = 0) begin
set @fillSQL = @fillSQL + 'C.[' + @colName + '] = S.[' + @colName + '],'
set @colCount = @colCount + 1
fetch next from crsColumns into @colName
end
close crsColumns
deallocate crsColumns
set @fillSQL = LEFT(@fillSQL, len(@fillSQL) - 1)
set @fillSQL = @fillSQL + '
from
' + @cacheSchema + '.' + @cacheName + ' C
inner join ' + @sourceSchema + '.' + @sourceName + ' S on S.MemberGUID = C.MemberGUID'
if (@whereClause != '') begin
set @fillSQL = @fillSQL + ' where ' + @whereClause
end
set @fillSQL = @fillSQL + ';
'
declare @rollbackSQL nvarchar(1000) = ''
if (@isSecured = 1) begin
set @fillSQL = @fillSQL + 'update dbo.ScoreDimension set IsSecurityTriggersEnabled = 1 where DimensionGUID = ''' + cast(@dimensionGUID as nvarchar(36)) + ''';'
set @rollbackSQL = 'update dbo.ScoreDimension set IsSecurityTriggersEnabled = 1 where DimensionGUID = ''' + cast(@dimensionGUID as nvarchar(36)) + ''';'
end
--fill the cache table
if (@colCount > 0) begin
if (@isDebug = 0) begin
begin try
exec(@fillSQL)
end try
begin catch
--don't leave triggers in a bad state
exec(@rollbackSQL)
end catch
end else begin
print @fillSQL
end
end
END
--refresh dependent members, going up to 2 dependency levels deep
if (@isNoRecurse = 0) begin
declare @FKsql nvarchar(max)
set @FKsql = ''
declare @FKdimensionGUID uniqueidentifier
declare crsFKDimensions cursor fast_forward for
select distinct
d.ChildDimensionGUID
from
dbo.viewScoreDimensionDependency d
where
(d.ParentDimensionGUID = @dimensionGUID or d.ParentDimensionGUID in(select c.ChildDimensionGUID from dbo.viewScoreDimensionDependency c where c.ParentDimensionGUID = @dimensionGUID))
and d.ChildDimensionGUID != @dimensionGUID
open crsFKDimensions
fetch next from crsFKDimensions into @FKdimensionGUID
while(@@FETCH_STATUS = 0) begin
--have to use dynamic sql because otherwise the recursion fails because we use the same cursor name
set @FKsql = @FKsql + 'exec procScoreDimensionCacheRefresh ''' + CAST(@FKdimensionGUID as nvarchar(36)) + ''', '''', ' + cast(@isDebug as nvarchar(1)) + ', 1, ' + cast(@isSecurityDirty as nvarchar(1)) + '
'
fetch next from crsFKDimensions into @FKdimensionGUID
end
close crsFKDimensions
deallocate crsFKDimensions
exec(@FKsql)
end
--refresh security if any inferred/calculated attributes drive security
if ((@isDebug = 0) and (@isSecured = 1) and (@isSecurityDirty = 1)) begin
INSERT INTO [dbo].[S3UserACLRegenRequest] ([RequestGUID], [IssuedAt]) VALUES (NEWID(), GETDATE())
exec procScoreSetDimensionSecurity30 @dimensionGUID, @isDebug, @isUsingVersionColumn, 0, 'procScoreDimensionCacheRefresh'
end
GO
---------------------------------------------
-- dbo.procScoreDimensionCacheRefreshAll
--Forward
create proc procScoreDimensionCacheRefreshAll
as
set nocount on
declare @dimensionGUID uniqueidentifier
declare crsDimensions cursor fast_forward for select DimensionGUID from ScoreDimension
open crsDimensions
fetch next from crsDimensions into @dimensionGUID
while(@@FETCH_STATUS = 0) begin
exec procScoreDimensionCacheRefresh @dimensionGUID
fetch next from crsDimensions into @dimensionGUID
end
close crsDimensions
deallocate crsDimensions
GO
---------------------------------------------
-- dbo.procScoreDimensionLastModified
CREATE proc [dbo].[procScoreDimensionLastModified]
@dimensionguid uniqueidentifier
as
declare @datemodified datetime
select coalesce((select MAX(datemodified) from
(
select datemodified from ScoreDimension where DimensionGUID = @dimensionguid
union all select datemodified from ScoreAttribute where DimensionGroupGUID in (select dimensiongroupguid from scoredimensiongroup where dimensionguid = @dimensionguid)
union all select datemodified from ScoreDimensionGroup where DimensionGUID = @dimensionguid
union all select datemodified from ScoreHierarchy where DimensionGUID = @dimensionguid
union all select datemodified from ScoreHierarchyAttributeLink shal
where shal.HierarchyGUID in (select HierarchyGUID from ScoreHierarchy where DimensionGUID = @dimensionguid)
) x
), getdate()) --return current date if invalid guid passedd
GO
---------------------------------------------
-- dbo.procScoreEnsureDefaultFramework
create proc dbo.procScoreEnsureDefaultFramework
AS
begin
--ensure that fw.DimFramework contains the general framework
if not exists(select 1 from fw.DimFramework where FrameworkID = 0) begin
set identity_insert fw.DimFramework ON;
insert into fw.DimFramework (FrameworkID, Name) VALUES (0, 'General');
set identity_insert fw.DimFramework OFF;
end
--insert into ScoreDimensionFramework any dimensions that aren't tagged at all (linked to General)
insert into ScoreDimensionFramework (DimensionGUID, FrameworkID)
select D.DimensionGUID, 0 as [FrameworkID] from ScoreDimension D
left join ScoreDimensionFramework F on F.DimensionGUID = D.DimensionGUID
group by D.DimensionGUID
having SUM(case when F.FrameworkID is null then 0 else 1 end) = 0
end
GO
---------------------------------------------
-- dbo.procScoreEnsureDimensionTableSetup
CREATE proc [dbo].[procScoreEnsureDimensionTableSetup] (
@DimensionGUID uniqueidentifier,
@DebugMode bit
)
AS
declare @SchemaName nvarchar(128);
declare @ObjectName nvarchar(max);
select
@SchemaName = SQLSchemaName,
@ObjectName = SQLObjectName
from ScoreDimension where DimensionGUID = @DimensionGUID;
if ([dbo].[IsView](@SchemaName, @ObjectName) = 1)
BEGIN
print ('Table is view-backed. Cannot add Columns. Exiting.');
RETURN;
END
exec procEnsureColumnInTable @SchemaName, @ObjectName, 'IsDeleted', 'bit', '0', @DebugMode;
exec procEnsureColumnInTable @SchemaName, @ObjectName, 'HistoryItemGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
exec procEnsureColumnInTable @SchemaName, @ObjectName, 'MemberGUID', 'uniqueidentifier', 'newid()', @DebugMode
GO
---------------------------------------------
-- dbo.procScoreEnsureLootRefreshTrigger
--#notran#
CREATE PROC [dbo].[procScoreEnsureLootRefreshTrigger](
@aDimensionGUID uniqueidentifier
)
AS
--get schema and object
declare @Schema varchar(128);
declare @Object varchar(128);
select @Schema = Sqlschemaname, @Object = SQLObjectname from ScoreDimension where DimensionGUID = @aDimensionGUID;
if (exists(select 1 from scoredimension d where d.dimensionguid = @aDimensionGUID and d.dimensionversion = 3 and exists(select 1 from sys.views v where v.name = d.sqlobjectname + '_source'))) begin
set @Object = @Object + '_source'
end
if ([dbo].[IsView](@Schema, @Object) = 1)
BEGIN
declare @TableSchema varchar(128);
declare @TableName varchar(128);
declare @TableTriggerName varchar(128);
print 'Adding Triggers to Underlying Tables';
DECLARE TableCursor CURSOR LOCAL FAST_FORWARD
FOR select TableName, TableSchema from viewSysViewBaseTables where ViewName = @Object and ViewSchema = @Schema and TableType = 'BASE TABLE' and TableName like 'Dim%' and TableSchema <> 'dbo' order by [Level]
--FOR select * from [dbo].GetViewUnderlyingTables(@Schema, @Object)
OPEN TableCursor;
Fetch Next from TableCursor INTO @TableName, @TableSchema;
WHILE (@@FETCH_STATUS = 0)
BEGIN
if (@TableSchema = 'dbo')
BEGIN
print 'Skipping dbo schema underlying table.';
END
ELSE
BEGIN
set @TableTriggerName = Substring((select [dbo].GetScoreLootRefreshTriggerName(@aDimensionGUID)) + '_' + @TableName, 0, 128);
exec [dbo].procScoreEnsureLootRefreshTriggerHelper @aDimensionGUID, @TableSchema,@TableName,@TableTriggerName,0;
END
Fetch Next from TableCursor INTO @TableName, @TableSchema;
END
CLOSE TableCursor;
DEALLOCATE TableCursor;
END
ELSE
BEGIN
--Add the Trigger directly to the Table
declare @triggerName varchar(max);
select @triggerName = (select [dbo].GetScoreLootRefreshTriggerName(@aDimensionGUID));
exec [dbo].procScoreEnsureLootRefreshTriggerHelper @aDimensionGUID, @Schema, @Object, @triggerName,1;
END
GO
---------------------------------------------
-- dbo.procScoreEnsureLootRefreshTriggerHelper
CREATE PROC [dbo].[procScoreEnsureLootRefreshTriggerHelper](
@aDimensionGUID uniqueidentifier,
@TargetSchemaName varchar(128),
@TargetObjectName varchar(128),
@TriggerName varchar(128),
@IsDirect bit
)
AS
declare @isself bit = 0
if(exists(select 1 from [dbo].[ScoreDimension] D inner join [dbo].[ScoreDimensionGroup] DG on DG.DimensionGroupGUID = D.PrimaryGroupGUID where D.DimensionGUID = @aDimensionGUID and DG.SchemaName = @TargetSchemaName and DG.ObjectName = @TargetObjectName)) begin
set @isself = 1
end
declare @targetDimensionGUID uniqueidentifier
select @targetDimensionGUID = D.DimensionGUID from [dbo].[ScoreDimension] D inner join [dbo].[ScoreDimensionGroup] DG on DG.DimensionGroupGUID = D.PrimaryGroupGUID where D.IsSecured = 1 and DG.SchemaName = @TargetSchemaName and DG.ObjectName = @TargetObjectName
if (@targetDimensionGUID is null) begin
return
end
------IF THE TRIGGER EXISTS, THEN DROP IT, WE NEED TO RECREATE
if ([dbo].IsTriggerExist(@TriggerName)= 1)
BEGIN
declare @dropSQL varchar(max);
set @dropSQL = '
DROP TRIGGER [' + @TargetSchemaName + '].[' + @TriggerName + '];
';
print @dropSQL;
exec(@dropSQL)
END
-----SEE IF THERES A VERSION COLUMN , will be 1 OR 0
declare @IsVersion int;
select
@IsVersion = COUNT(*)
from viewSysColumns COL
where
COL.ObjectName = @TargetObjectName
and COL.SchemaName = @TargetSchemaName
and COL.ColumnName = 'Version'
and COL.ColumnTypeValue = 189 --timestamp
if (@IsDirect = 0)
begin
set @IsVersion = 0 --don't use version if we are not direct
end
if (not exists(select 1 from sys.tables t inner join sys.schemas s on s.schema_id = t.schema_id where s.name = @TargetSchemaName and t.name = @TargetObjectName))
begin
return
end
declare @sql varchar(max);
set @sql = '
CREATE TRIGGER [' + @TargetSchemaName + '].[' + @TriggerName + ']
ON ' + (select [dbo].[GetSQLTableExpression](@TargetSchemaName, @TargetObjectName)) + '
AFTER UPDATE, INSERT
AS
BEGIN
SET NOCOUNT ON;
if (exists(select 1 from dbo.ScoreDimension with (readuncommitted) where DimensionGUID = ''' + cast(@targetDimensionGUID as nvarchar(36)) + ''' and IsSecurityTriggersEnabled = 0)) begin
return
end
'
if (@isself = 1) begin
set @sql = @sql + '
declare @memberguid uniqueidentifier
--handle single member insert specially
if (((select count(MemberGUID) from inserted) = 1) and ((select count(MemberGUID) from deleted) = 0)) begin
select top 1 @memberguid = MemberGUID from inserted
EXEC procScoreSetDimensionSecurity30InsertNew ''' + cast(@aDimensionGUID as varchar(max)) + ''', @memberguid, 0, ' + CAST(@IsVersion as nvarchar(8)) + '
return
end
--handle single member update specially
if (((select count(MemberGUID) from inserted) = 1) and ((select count(MemberGUID) from deleted) = 1) and (isnull((select top 1 MemberGUID from inserted), ''00000000-0000-0000-0000-000000000000'') = isnull((select top 1 MemberGUID from deleted), ''00000000-0000-0000-0000-000000000000''))) begin
select top 1 @memberguid = MemberGUID from deleted
EXEC procScoreSetDimensionSecurity30UpdateSingle ''' + cast(@aDimensionGUID as varchar(max)) + ''', @memberguid, 0, ' + CAST(@IsVersion as nvarchar(8)) + '
return
end'
end else begin
set @sql = @sql + '
if ((exists(select 1 from inserted)) and (not exists(select 1 from deleted))) begin
--no dependents to refresh since this is a straight insert
return
end'
end
set @sql = @sql + '
--handle all other cases
EXEC procScoreSetDimensionSecurity30 ''' + cast(@aDimensionGUID as varchar(max)) + ''', 0, ' + CAST(@IsVersion as nvarchar(8)) + '
END
';
print @sql;
exec (@sql);
--hack: drop unwanted project->requisition trigger
declare @reqdimguid uniqueidentifier
select @reqdimguid = DimensionGUID from ScoreDimension where FriendlyName = 'CAP Requisition'
if (@reqdimguid is not null) begin
declare @reqdimsql nvarchar(max)
set @reqdimsql = '
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N''[cap].[trg_ScoreDimension_' + replace(cast(@reqdimguid as nvarchar(36)), '-', '') + '_LootRefresh_DimProject]''))
DROP TRIGGER [cap].[trg_ScoreDimension_' + replace(cast(@reqdimguid as nvarchar(36)), '-', '') + '_LootRefresh_DimProject]'
exec(@reqdimsql)
end
GO
---------------------------------------------
-- dbo.procScoreEnsureLootRefreshTriggers
create procedure [dbo].[procScoreEnsureLootRefreshTriggers]
AS
BEGIN
declare dimCursor CURSOR LOCAL FAST_FORWARD FOR
select DimensionGUID, IsSecured from ScoreDimension
open dimCursor;
DECLARE @DimGUID uniqueidentifier;
DECLARE @IsSecured bit;
FETCH NEXT FROM dimCursor into @DimGUID, @IsSecured
WHILE (@@FETCH_STATUS = 0)
BEGIN
if (@IsSecured = 1)
begin
exec procScoreEnsureLootRefreshTrigger @DimGUID;
end
FETCH NEXT FROM dimCursor into @DimGUID, @IsSecured
END
close dimCursor;
DEALLOCATE dimCursor;
END
GO
---------------------------------------------
-- dbo.procScoreEnsureSecurity
create procedure [dbo].[procScoreEnsureSecurity]
AS
BEGIN
exec procScoreDeleteOrphanedSecurityTriggers;
exec procScoreEnsureLootRefreshTriggers;
END
GO
---------------------------------------------
-- dbo.procScoreEnsureSystemSectionDimension
--/****** Object: StoredProcedure [dbo].[procScoreEnsureSystemSectionDimension] Script Date: 03/22/2011 11:25:58 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
CREATE proc [dbo].[procScoreEnsureSystemSectionDimension] (
@IsForceRebuild bit = 0
)
as
declare @DeletedDimensionGUID uniqueidentifier;
-- check existing
declare @cnt int
select @cnt = count(*) from ScoreDimension where FriendlyName = 'System Sections'
if @cnt = 1 begin
if @IsForceRebuild = 1 begin
print 'Forcing Rebuild...';
select @DeletedDimensionGUID = DimensionGUID from ScoreDimension where FriendlyName = 'System Sections';
exec procScoreDeleteDimension @DeletedDimensionGUID, 1,1;
end
else begin
print 'System Section dimension already exists.'
return
end
end
-- get schema
declare @schema varchar(10)
select @schema = name from sys.schemas where name = 'fw'
if @schema is null begin
select @schema = name from sys.schemas where name = 'data'
if @schema is null begin
set @schema = 'dbo'
end
end
-- create view
declare @sql varchar(max)
set @sql = '
create view [' + @schema + '].[viewDimSystemSection]
as
select
SS.SYSTEMSECTIONGUID as MemberGUID,
SS.Name,
SS.ImageName,
coalesce(nullif(replace(replace(replace(substring(replace(SS.FullPath, ''SYSTEM\'', ''''), 1, patindex(''%\%'', replace(SS.FullPath, ''SYSTEM\'', ''''))), ''\'', ''''), ''TOOLBAR_'', ''''), ''MENU_'', ''''), ''''), ''System'') as Area,
coalesce(nullif(replace(substring(replace(SS.FullPath, ''SYSTEM\'', ''''), 1, patindex(''%\%'', replace(SS.FullPath, ''SYSTEM\'', ''''))), ''\'', ''''), ''''), ''System'') as Section,
coalesce(nullif(replace(replace(replace(substring(replace(SS.FullPath, ''SYSTEM\'', ''''), 1, patindex(''%\%'', replace(SS.FullPath, ''SYSTEM\'', ''''))), ''\'', ''''), ''TOOLBAR_'', ''''), ''MENU_'', ''''), ''''), ''System'')
+ '' - '' +
coalesce(nullif(replace(substring(replace(SS.FullPath, ''SYSTEM\'', ''''), 1, patindex(''%\%'', replace(SS.FullPath, ''SYSTEM\'', ''''))), ''\'', ''''), ''''), ''System'')
+ '' - '' + SS.Name as [FullName],
SS.ID,
SS.LootID,
coalesce(PSS.Name, ''System'') as Parent,
coalesce(PSS.LootID, ''1F30ED4A-DFA5-4EA6-8457-20D23DB372C3'') as ParentLootID,
cast(0 as bit) as IsDeleted,
dbo.ZeroGUID() as HistoryItemGUID
from SystemSection SS
left join SystemSection PSS on PSS.SystemSectionGUID = SS.ParentGUID
--inner join S3Loot L on L.LootID = SS.LootID
--inner join S3PermissionSet PS on PS.PermissionSetID = L.PermissionSetID --why do we do this? AJK
--where PS.Name like ''%System%''
'
exec(@sql)
-- get permissionsetid
declare @PermissionSetID int
select @PermissionSetID = PermissionSetID from S3PermissionSet where Name like '%System%'
-- create dimension
insert into ScoreDimension
(FriendlyName, SQLTableAlias, DefaultKeyGUID, DefaultHierarchyGUID, DefaultLookupKeyGUID, IsSecured, PermissionSetID, SQLSchemaName, SQLObjectName, DefaultMemberGUID, IsSysAdminOnly)
values (
'System Sections', -- FriendlyName
'SS', -- SQLTableAlias
dbo.ZeroGUID(), -- DefaultKeyGUID
dbo.ZeroGUID(), -- DefaultHierarchyGUID
dbo.ZeroGUID(), -- DefaultLookupKeyGUID
1, -- IsSecured
@PermissionSetID, -- PermissionSetID
@schema, -- SQLSchemaName
'viewDimSystemSection', -- SQLObjectName
dbo.ZeroGUID(), -- DefaultMemberGUID
0 -- IsSysAdminOnly
)
-- get dimensionguid
declare @DimensionGUID uniqueidentifier
select @DimensionGUID = DimensionGUID from ScoreDimension where FriendlyName = 'System Sections'
-- create dimension group
insert into ScoreDimensionGroup
(DimensionGUID, Name, Description, IsStock, SchemaName, ObjectName, DateModified)
values (
@DimensionGUID, --DimensionGUID
'System Sections', --Name
'', --Description
1, --IsStock
@schema, --SchemaName
'viewDimSystemSection', --ObjectName
GETDATE() --DateModified
);
declare @DimensionGroupGUID uniqueidentifier;
select @DimensionGroupGUID = G.DimensionGroupGUID from ScoreDimensionGroup G
inner join ScoreDimension D on D.DimensionGUID = G.DimensionGUID
where G.Name = 'System Sections' and D.DimensionGUID = @DimensionGUID
--update primary group
UPDATE ScoreDimension Set PrimaryGroupGUID = @DimensionGroupGUID
where DimensionGUID = @DimensionGUID
--get COLUMN attribute type
declare @ColumnType int;
select @ColumnType = T.ScoreAttributeTypeID from ScoreAttributeType T where T.Name = 'Column';
-- create memberguid attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'MemberGUID', -- FriendlyName
36, -- ColumnType
0, -- IsWrittenToDB
1, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'MemberGUID', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create fullname attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'FullName', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
1, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'FullName', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create name attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'Name', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
0, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'Name', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create imagename attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'ImageName', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
0, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'ImageName', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create area attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'Area', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
0, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
1, -- IsSecuredLootGroupID
'SS', -- SecuredLootGroupPrefix
'Area', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create section attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'Section', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
0, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
1, -- IsSecuredLootGroupID
'SS', -- SecuredLootGroupPrefix
'Section', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create id attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'ID', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
0, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'ID', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create lootid attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'LootID', -- FriendlyName
167, -- ColumnType
0, -- IsWrittenToDB
1, -- IsKey
1, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
1, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'LootID', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create parent attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'Parent', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
0, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'Parent', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create parentlootid attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, IsHidden, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'ParentLootID', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
0, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
1, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'ParentLootID', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
0, -- isHidden
@ColumnType --AttributeType
)
-- create hierarchy
insert into ScoreHierarchy
(DimensionGUID, FriendlyName, PathAlias)
values (@DimensionGUID, 'System Sections', 'SS')
-- get hierarchyguid
declare @HierarchyGUID uniqueidentifier
select @HierarchyGUID = HierarchyGUID from ScoreHierarchy where FriendlyName = 'System Sections'
-- create parentlootid hierarchyattributelink
insert into ScoreHierarchyAttributeLink
(HierarchyGUID, AttributeGUID, DisplayAttributeGUID, SortOrder, IsDependentOnChild)
select
@HierarchyGUID, -- HierarchyGUID
A.AttributeGUID, -- AttributeGUID
DA.AttributeGUID, -- DisplayAttributeGUID
1, -- SortOrder
0 -- IsDependentOnChild
from ScoreAttribute A
inner join ScoreAttribute DA on DA.DimensionGroupGUID = A.DimensionGroupGUID
where A.FriendlyName = 'ParentLootID'
and DA.FriendlyName = 'Parent'
and A.DimensionGroupGUID = @DimensionGroupGUID
-- create area hierarchyattributelink
insert into ScoreHierarchyAttributeLink
(HierarchyGUID, AttributeGUID, DisplayAttributeGUID, SortOrder, IsDependentOnChild)
select
@HierarchyGUID, -- HierarchyGUID
A.AttributeGUID, -- AttributeGUID
A.AttributeGUID, -- DisplayAttributeGUID
2, -- SortOrder
0 -- IsDependentOnChild
from ScoreAttribute A
where A.FriendlyName = 'Area'
and A.DimensionGroupGUID = @DimensionGroupGUID
-- create section hierarchyattributelink
insert into ScoreHierarchyAttributeLink
(HierarchyGUID, AttributeGUID, DisplayAttributeGUID, SortOrder, IsDependentOnChild)
select
@HierarchyGUID, -- HierarchyGUID
A.AttributeGUID, -- AttributeGUID
A.AttributeGUID, -- DisplayAttributeGUID
3, -- SortOrder
0 -- IsDependentOnChild
from ScoreAttribute A
where A.FriendlyName = 'Section'
and A.DimensionGroupGUID = @DimensionGroupGUID
-- create lootid hierarchyattributelink
insert into ScoreHierarchyAttributeLink
(HierarchyGUID, AttributeGUID, DisplayAttributeGUID, SortOrder, IsDependentOnChild)
select
@HierarchyGUID, -- HierarchyGUID
A.AttributeGUID, -- AttributeGUID
DA.AttributeGUID, -- DisplayAttributeGUID
4, -- SortOrder
0 -- IsDependentOnChild
from ScoreAttribute A
inner join ScoreAttribute DA on DA.DimensionGroupGUID = A.DimensionGroupGUID
where A.FriendlyName = 'LootID'
and DA.FriendlyName = 'FullName'
and A.DimensionGroupGUID = @DimensionGroupGUID
-- create default hierarchyguid
update D
set D.DefaultHierarchyGUID = @HierarchyGUID
from ScoreDimension D
where D.DimensionGUID = @DimensionGUID
-- create default keyguid
update D
set D.DefaultKeyGUID = A.AttributeGUID
from ScoreDimension D
inner join ScoreDimensionGroup G on G.DimensionGUID = D.DimensionGUID
inner join ScoreAttribute A on A.DimensionGroupGUID = G.DimensionGroupGUID
where A.FriendlyName = 'MemberGUID'
and D.DimensionGUID = @DimensionGUID
-- create default lookupkeyguid
update D
set D.DefaultLookupKeyGUID = A.AttributeGUID
from ScoreDimension D
inner join ScoreDimensionGroup G on D.DimensionGUID = G.DimensionGUID
inner join ScoreAttribute A on A.DimensionGroupGUID = G.DimensionGroupGUID
where A.FriendlyName = 'FullName'
and D.DimensionGUID = @DimensionGUID
-- update loot
exec procScoreSetDimensionSecurity30 @DimensionGUID
print 'System Section dimension created.'
print 'View: [' + @schema + '].[viewDimSystemSection]'
print 'Dimension: System Sections (' + cast(@DimensionGUID as varchar(36)) +')'
print 'PermissionSet: ' + cast(@PermissionSetID as varchar(10))
-- If rebuilding, fix simple security
if @IsForceRebuild = 1 begin
update S3SimplePermission set LootID = @DimensionGUID where LootID = @DeletedDimensionGUID
end
exec procScoreAttributeSchemaUpdateAll;
GO
---------------------------------------------
-- dbo.procScoreEnsureUserProfileDimension
--==========================================================================================
CREATE proc [dbo].[procScoreEnsureUserProfileDimension] (
@IsForceRebuild bit = 0
)
as
declare @DeletedDimensionGUID uniqueidentifier;
-- check existing
declare @cnt int
select @cnt = count(*) from ScoreDimension where FriendlyName = 'User Profiles'
if @cnt = 1 begin
if @IsForceRebuild = 1 begin
print 'Forcing Rebuild...';
select @DeletedDimensionGUID = DimensionGUID from ScoreDimension where FriendlyName = 'User Profiles';
exec procScoreDeleteDimension @DeletedDimensionGUID, 1,1;
end
else begin
print 'User Profile dimension already exists.'
return
end
end
-- get schema
declare @schema varchar(10)
select @schema = name from sys.schemas where name = 'fw'
if @schema is null begin
select @schema = name from sys.schemas where name = 'data'
if @schema is null begin
set @schema = 'dbo'
end
end
-- create view
declare @sql varchar(max)
set @sql = '
create view [' + @schema + '].[viewDimUserProfile]
as
select
up.UserGUID as MemberGUID,
up.UserGUID,
up.UserName,
up.NameFull,
ISNULL(CAST(CASE WHEN IL.GroupingGUID IS NULL THEN 0 ELSE 1 END AS bit),0) AS IsSysAdmin,
CAST (0 as bit) as IsDeleted,
dbo.ZeroGUID() as HistoryItemGUID,
CAST(UserGUID as varchar(36)) as LootID
from UserProfile up
left join [dbo].[S3IdentityLink] IL on UP.UserGUID = IL.MemberGUID and IL.GroupingGUID = (select UserGroupGUID from [dbo].[UserGroup] where GlobalID = ''GEN - User Administrator'')
where up.IsDisabled = 0
'
exec(@sql)
----------------------------------------
-- get permissionsetid
declare @PermissionSetExists int
declare @PermissionSetID int
select @PermissionSetExists = COUNT(*) from S3PermissionSet where MetaForUpgrade='090D3991-D019-48A9-B501-0AC52402EDFC'
if (@PermissionSetExists = 0)
begin
insert into dbo.S3PermissionSet (Name, MetaForUpgrade)
values (
'UP - ReadOnly',
'090D3991-D019-48A9-B501-0AC52402EDFC'
)
select @PermissionSetID = PermissionSetID from S3PermissionSet where MetaForUpgrade='090D3991-D019-48A9-B501-0AC52402EDFC'
insert into dbo.S3Permission (PermissionSetID, RoleID, Weight, ReadValue)
select
@PermissionSetID,
ur.RoleID,
0,
CAST (1 as bit)
from UserRole ur
end
select @PermissionSetID = PermissionSetID from S3PermissionSet where MetaForUpgrade='090D3991-D019-48A9-B501-0AC52402EDFC'
-- create dimension
insert into ScoreDimension
(FriendlyName, SQLTableAlias, DefaultKeyGUID, DefaultHierarchyGUID, DefaultLookupKeyGUID, IsSecured, PermissionSetID, SQLSchemaName, SQLObjectName, DefaultMemberGUID, IsSysAdminOnly, IsAllowMemberAdd, IsAllowMemberDelete)
values (
'User Profiles', -- FriendlyName
'USERPROF', -- SQLTableAlias
dbo.ZeroGUID(), -- DefaultKeyGUID
dbo.ZeroGUID(), -- DefaultHierarchyGUID
dbo.ZeroGUID(), -- DefaultLookupKeyGUID
1, -- IsSecured
@PermissionSetID, -- PermissionSetID
@schema, -- SQLSchemaName
'viewDimUserProfile', -- SQLObjectName
dbo.ZeroGUID(), -- DefaultMemberGUID
0, -- IsSysAdminOnly
0, -- IsAllowMemberAdd
0 -- IsAllowMemberDelete
)
-- get dimensionguid
declare @DimensionGUID uniqueidentifier
select @DimensionGUID = DimensionGUID from ScoreDimension where FriendlyName = 'User Profiles'
-- create dimension group
insert into ScoreDimensionGroup
(DimensionGUID, Name, Description, IsStock, SchemaName, ObjectName, DateModified)
values (
@DimensionGUID, --DimensionGUID
'User Profiles', --Name
'', --Description
1, --IsStock
@schema, --SchemaName
'viewDimUserProfile', --ObjectName
GETDATE() --DateModified
);
declare @DimensionGroupGUID uniqueidentifier;
select @DimensionGroupGUID = G.DimensionGroupGUID from ScoreDimensionGroup G
inner join ScoreDimension D on D.DimensionGUID = G.DimensionGUID
where G.Name = 'User Profiles' and D.DimensionGUID = @DimensionGUID
--update primary group
UPDATE ScoreDimension Set PrimaryGroupGUID = @DimensionGroupGUID
where DimensionGUID = @DimensionGUID
--get COLUMN attribute type
declare @ColumnType int;
select @ColumnType = T.ScoreAttributeTypeID from ScoreAttributeType T where T.Name = 'Column';
-- create memberguid attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGroupGUID
'MemberGUID', -- FriendlyName
36, -- ColumnType
0, -- IsWrittenToDB
1, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'MemberGUID', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
@ColumnType --AttributeType
)
-- create userguid attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGroupGUID
'UserGUID', -- FriendlyName
36, -- ColumnType
0, -- IsWrittenToDB
1, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'UserGUID', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
@ColumnType --AttributeType
)
-- create NameFull attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'NameFull', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
1, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'NameFull', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
@ColumnType --AttributeType
)
-- create UserName attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'UserName', -- FriendlyName
231, -- ColumnType
0, -- IsWrittenToDB
0, -- IsKey
0, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
0, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'UserName', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
@ColumnType --AttributeType
)
-- create lootid attribute
insert into ScoreAttribute
(DimensionGroupGUID, FriendlyName, ColumnType, IsWrittenToDB, IsKey, IsSecuredLootID, IsSecuredLootConfigID, IsSecuredLootGroupID, SecuredLootGroupPrefix, SQLColumnName, DefaultSortAttributeGUID, ForeignKeyGUID, IsRequired, SpecialAttributeIndex, IsCopiedWithPlan, DisplayOrder, AttributeType)
values (
@DimensionGroupGUID, -- DimensionGUID
'LootID', -- FriendlyName
167, -- ColumnType
0, -- IsWrittenToDB
1, -- IsKey
1, -- IsSecuredLootID
0, -- IsSecuredLootConfigID
1, -- IsSecuredLootGroupID
'', -- SecuredLootGroupPrefix
'LootID', -- SQLColumnName
dbo.ZeroGUID(), -- DefaultSortAttributeGUID
dbo.ZeroGUID(), -- ForeignKeyGUID
1, -- IsRequired
0, -- SpecialAttributeIndex
1, -- IsCopiedWithPlan
0, -- DisplayOrder
@ColumnType --AttributeType
)
-- create hierarchy
insert into ScoreHierarchy
(DimensionGUID, FriendlyName, PathAlias)
values (@DimensionGUID, 'User Profiles', 'USERPROF')
-- get hierarchyguid
declare @HierarchyGUID uniqueidentifier
select @HierarchyGUID = HierarchyGUID from ScoreHierarchy where FriendlyName = 'User Profiles'
-- create lootid/namefull hierarchyattributelink
insert into ScoreHierarchyAttributeLink
(HierarchyGUID, AttributeGUID, DisplayAttributeGUID, SortOrder, IsDependentOnChild)
select
@HierarchyGUID, -- HierarchyGUID
A.AttributeGUID, -- AttributeGUID
DA.AttributeGUID, -- DisplayAttributeGUID
4, -- SortOrder
0 -- IsDependentOnChild
from ScoreAttribute A
inner join ScoreAttribute DA on DA.DimensionGroupGUID = A.DimensionGroupGUID
where A.FriendlyName = 'LootID'
and DA.FriendlyName = 'NameFull'
and A.DimensionGroupGUID = @DimensionGroupGUID
-- create default hierarchyguid
update D
set D.DefaultHierarchyGUID = @HierarchyGUID
from ScoreDimension D
where D.DimensionGUID = @DimensionGUID
-- create default keyguid
update D
set D.DefaultKeyGUID = A.AttributeGUID
from ScoreDimension D
inner join ScoreDimensionGroup G on G.DimensionGUID = D.DimensionGUID
inner join ScoreAttribute A on A.DimensionGroupGUID = G.DimensionGroupGUID
where A.FriendlyName = 'UserGUID'
and D.DimensionGUID = @DimensionGUID
-- create default lookupkeyguid
update D
set D.DefaultLookupKeyGUID = A.AttributeGUID
from ScoreDimension D
inner join ScoreDimensionGroup G on D.DimensionGUID = G.DimensionGUID
inner join ScoreAttribute A on A.DimensionGroupGUID = G.DimensionGroupGUID
where A.FriendlyName = 'NameFull'
and D.DimensionGUID = @DimensionGUID
-- update loot
exec procScoreSetDimensionSecurity30 @DimensionGUID
print 'User Profile dimension created.'
print 'View: [' + @schema + '].[viewDimUserProfile]'
print 'Dimension: User Profiles (' + cast(@DimensionGUID as varchar(36)) +')'
print 'PermissionSet: ' + cast(@PermissionSetID as varchar(10))
-- If rebuilding, fix simple security
if @IsForceRebuild = 1 begin
update S3SimplePermission set LootID = @DimensionGUID where LootID = @DeletedDimensionGUID
end
exec procScoreAttributeSchemaUpdateAll;
GO
---------------------------------------------
-- dbo.procScoreFillInCopy
CREATE proc [dbo].[procScoreFillInCopy]
@oldmodelguid uniqueidentifier,
@newmodelguid uniqueidentifier
as
declare @higuid uniqueidentifier
set @higuid = NEWID()
declare @cnt int
set @cnt = 0
--UPDATE EVERYTHING THAT IS ALREADY THERE
UPDATE ScoreFillin
SET
--PlaceholderSectionMemberGUID = OLD.PlaceholderSectionMemberGUID,
--PlaceholderIndex = OLD.PlaceholderIndex,
FillinMemberGUID = OLD.FillinMemberGUID,
FillinMemberName = OLD.FillinMemberName,
HistoryItemGUID = @higuid,
IsSystemSet = OLD.IsSystemSet
FROM ScoreFillin
inner join ScoreFillin OLD
on
OLD.PlaceholderSectionMemberGUID = ScoreFillin.PlaceholderSectionMemberGUID
and
OLD.PlaceholderIndex = ScoreFillin.PlaceholderIndex
where
ScoreFillin.ModelGUID = @newmodelguid
and OLD.ModelGUID = @oldmodelguid
and ScoreFIllin.FillinMemberGUID <> OLD.FillinMemberGUID
set @cnt = @cnt + @@ROWCOUNT
--INSERT ANYTHING THAT ISNT
insert into ScoreFillin(FillinGUID, ModelGUID, PlaceholderSectionMemberGUID, PlaceholderIndex, FillinMemberGUID, FillinMemberName, HistoryItemGUID, IsSystemSet)
select
NewID() as FillinGUID, @newmodelguid, PlaceholderSectionMemberGUID, PlaceholderIndex, FillinMemberGUID, FillinMemberName, @higuid, IsSystemSet
from
ScoreFillin
where
modelguid = @oldmodelguid
AND NOT EXISTS (
select 1
from
ScoreFillin NEW
where
NEW.PlaceholderSectionMemberGUID = ScoreFillin.PlaceholderSectionMemberGUID
and NEW.PlaceholderIndex = ScoreFillin.PlaceholderIndex
and NEW.ModelGUID = @newmodelguid
)
set @cnt = @cnt + @@ROWCOUNT
if @cnt > 0 begin
exec [procLogObjectHistoryItemGUIDObjectType] 'Strata.EMF.Biz.Data.ScoreDataHistoryItem, Strata.EMF.Biz', @newmodelguid, 'Copied fillins', @cnt, @higuid
end
--AND FillinGUID NOT IN
-- (select OLD.FillinGUID from ScoreFillin NEW
-- inner join ScoreFillin OLD on
-- OLD.PlaceholderSectionMemberGUID = NEW.PlaceholderSectionMemberGUID
-- and
-- OLD.PlaceholderIndex = NEW.PlaceholderIndex
-- where
-- NEW.ModelGUID = @newmodelguid
-- and OLD.ModelGUID = @oldmodelguid)
--fix "self" fillins
exec procScoreFillinSetByTemplateDefault @newmodelguid, 1
--refresh cache
exec [dbo].[procScoreFillinTableRefresh] @newmodelguid
GO
---------------------------------------------
-- dbo.procScoreFillInDelete
create proc [dbo].[procScoreFillInDelete]
@modelguid uniqueidentifier,
@phSectionMemberGUID uniqueidentifier,
@fillInMemberGUID uniqueidentifier
as
delete from ScoreFillin
where
ModelGUID = @modelguid
and PlaceholderSectionMemberGUID = @phSectionMemberGUID
and FillinMemberGUID = @fillInMemberGUID
GO
---------------------------------------------
-- dbo.procScoreFillInInsert
CREATE proc [dbo].[procScoreFillInInsert]
@modelguid uniqueidentifier,
@phSectionMemberGUID uniqueidentifier,
@fillInMemberGUID uniqueidentifier
as
declare @cnt int
declare @maxIndex int
select
@cnt = SUM(case when fi.FillinMemberGUID = @fillInMemberGUID then 1 else 0 end),
@maxIndex = MAX(fi.PlaceholderIndex)
from
ScoreFillin fi
where
fi.ModelGUID = @modelguid
and fi.PlaceholderSectionMemberGUID = @phSectionMemberGUID
if @cnt = 0 begin
insert into ScoreFillin ( ModelGUID, PlaceholderSectionMemberGUID, PlaceholderIndex, FillinMemberGUID )
values (@modelguid, @phSectionMemberGUID, @maxIndex + 1, @fillInMemberGUID)
end
GO
---------------------------------------------
-- dbo.procScoreFillInSetByTemplate
CREATE proc [dbo].[procScoreFillInSetByTemplate]
@modelGUID uniqueidentifier,
@fillInTemplateName nvarchar(100)
as
--FITGUID PlaceholderSectionMemberGUID Auto-Fillin-Method
--x {my department} use current planmemberguid
--x {accounts} query: all accounts where attribute x = y sort by attribute z
--x {payors} specific member: {bcbs}
-- Fill in Current Model fit items
declare @modelName nvarchar(max)
select @modelName = name from xplan where planguid = @modelGUID
declare @higuid uniqueidentifier
set @higuid = NEWID()
declare @cnt int
set @cnt = 0
insert into ScoreFillin ( ModelGUID, PlaceholderSectionMemberGUID, PlaceholderIndex, FillinMemberGUID, FillinMemberName, HistoryItemGUID)
select
@modelGUID,
PlaceholderSectionMemberGUID,
isnull((select max(placeholderindex) from scorefillin fi where fi.modelguid = @modelguid and fi.placeholdersectionmemberguid = fit.PlaceholderSectionMemberGUID),0)
+ PlaceholderSectionIndex,
@modelGUID,
left(isnull(@modelName,'Current Model') ,50),
@higuid
from
ScoreFillInTemplateItem fit (readuncommitted)
where
fillInTemplateName = @fillInTemplateName
and IsCurrentModelGUID = 1
and not exists (select 1 from ScoreFillin fi where fi.ModelGUID = @modelGUID and fi.PlaceholderSectionMemberGUID = fit.PlaceholderSectionMemberGUID and fi.FillinMemberGUID = @modelGUID)
set @cnt = @@ROWCOUNT
--Fill in constant fit items
insert into ScoreFillin ( ModelGUID, PlaceholderSectionMemberGUID, PlaceholderIndex, FillinMemberGUID, FillinMemberName, HistoryItemGUID)
select
@modelGUID,
PlaceholderSectionMemberGUID,
isnull((select max(placeholderindex) from scorefillin fi where fi.modelguid = @modelguid and fi.placeholdersectionmemberguid = fit.PlaceholderSectionMemberGUID),0)
+ PlaceholderSectionIndex,
ConstantMemberGUID,
'Constant Member', --isnull(sdm.MemberName,'Constant Member' ),
@higuid
from
ScoreFillInTemplateItem fit (readuncommitted)
--left join data.viewScoreDimensionMember sdm on fit.ConstantMemberGUID = sdm.MemberGUID
where
fillInTemplateName = @fillInTemplateName
and IsConstantMemberGUID = 1
and not exists (select 1 from ScoreFillin fi where fi.ModelGUID = @modelGUID and fi.PlaceholderSectionMemberGUID = fit.PlaceholderSectionMemberGUID and fi.FillinMemberGUID = ConstantMemberGUID)
set @cnt = @cnt + @@ROWCOUNT
declare @PlaceholderSectionMemberGUID uniqueidentifier
declare @query varchar(max)
declare crsFITQ CURSOR LOCAL READ_ONLY FAST_FORWARD FOR
select
PlaceholderSectionMemberGUID,
Query
from
ScoreFillInTemplateItem (readuncommitted)
where
fillInTemplateName = @fillInTemplateName
and isquery = 1
open crsFITQ;
declare @minrow int
FETCH NEXT FROM crsFITQ into @PlaceholderSectionMemberGUID, @query
WHILE (@@FETCH_STATUS = 0)
BEGIN
create table #members (rownum int, memberguid uniqueidentifier, memberName nvarchar(max))
set @query = REPLACE(@query, '{modelguid}',@modelguid)
insert into #members (rownum, memberguid, memberName)
exec (@query)
select @minrow = MIN(rownum) from #members
if @minrow = 1 begin
update #members set rownum = rownum - 1
end
insert into ScoreFillin ( ModelGUID, PlaceholderSectionMemberGUID, PlaceholderIndex, FillinMemberGUID, FillinMemberName, HistoryItemGUID)
select
@modelGUID,
@PlaceholderSectionMemberGUID,
isnull((select max(placeholderindex) from scorefillin fi where fi.modelguid = @modelguid and fi.placeholdersectionmemberguid = @PlaceholderSectionMemberGUID),0)
+ rownum,
memberguid,
left(memberName,50),
@higuid
from
#members fit
where
not exists (select 1 from ScoreFillin fi where fi.ModelGUID = @modelGUID and fi.PlaceholderSectionMemberGUID = @PlaceholderSectionMemberGUID and fi.FillinMemberGUID = fit.MemberGUID)
order by
rownum
set @cnt = @cnt + @@ROWCOUNT
drop table #members
FETCH NEXT FROM crsFITQ into @PlaceholderSectionMemberGUID, @query
END
close crsFITQ;
DEALLOCATE crsFITQ;
declare @msg Nvarchar(max)
set @msg = 'Set Fillin Template ' + @fillInTemplateName
if @cnt > 0 begin
exec [procLogObjectHistoryItemGUIDObjectType] 'Strata.EMF.Biz.Data.ScoreDataHistoryItem, Strata.EMF.Biz', @modelguid, @msg, @cnt, @higuid
end
--select
-- @isQuery = IsQuery
--from
-- ScoreFillInTemplateItem
--where
-- FillInTemplateItemID = @fillInTemplateItemID
exec [dbo].[procScoreFillinTableRefresh] @modelGUID
GO
---------------------------------------------
-- dbo.procScoreFillInSetByTemplateJustSelf
CREATE proc [dbo].[procScoreFillInSetByTemplateJustSelf]
@modelGUID uniqueidentifier,
@fillInTemplateName nvarchar(max)
as
--FITGUID PlaceholderSectionMemberGUID Auto-Fillin-Method
--x {my department} use current planmemberguid
--x {accounts} query: all accounts where attribute x = y sort by attribute z
--x {payors} specific member: {bcbs}
--delete existing iscurrentmodelguid = 1 fillins for this model
delete fi from ScoreFillin fi
where
ModelGUID = @modelGUID
and exists (
select 1
from
ScoreFillInTemplateItem fit
where
fit.IsCurrentModelGUID = 1
and fit.PlaceholderSectionMemberGUID = fi.PlaceholderSectionMemberGUID
and fit.PlaceholderSectionIndex = fi.PlaceholderIndex
)
declare @modelName nvarchar(max)
select @modelName = left(name, 50) from Xplan where PlanGUID = @modelGUID
declare @higuid uniqueidentifier
set @higuid = NEWID()
declare @cnt int
-- Fill in Current Model fit items
insert into ScoreFillin ( ModelGUID, PlaceholderSectionMemberGUID, PlaceholderIndex, FillinMemberGUID, FillinMemberName, HistoryItemGUID)
select
@modelGUID,
PlaceholderSectionMemberGUID,
isnull((select max(placeholderindex) from scorefillin fi where fi.modelguid = @modelguid and fi.placeholdersectionmemberguid = fit.PlaceholderSectionMemberGUID),0)
+ PlaceholderSectionIndex,
@modelGUID,
isnull(@modelName,'Current Model'),
@higuid
from
ScoreFillInTemplateItem fit
where
fillInTemplateName = @fillInTemplateName
and IsCurrentModelGUID = 1
and not exists (select 1 from ScoreFillin fi where fi.ModelGUID = @modelGUID and fi.PlaceholderSectionMemberGUID = fit.PlaceholderSectionMemberGUID and fi.FillinMemberGUID = @modelGUID)
set @cnt = @@ROWCOUNT
if @cnt > 0 begin
exec [procLogObjectHistoryItemGUIDObjectType] 'Strata.EMF.Biz.Data.ScoreDataHistoryItem, Strata.EMF.Biz', @modelguid,'Set Self Fillins',@cnt,@higuid
end
exec [dbo].[procScoreFillinTableRefresh] @modelGUID
GO
---------------------------------------------
-- dbo.procScoreFillInSetManyClearThoseBeingSet
--Forward
CREATE proc [dbo].[procScoreFillInSetManyClearThoseBeingSet]
@iguid uniqueidentifier
as
DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
WITH tgt (ModelGUID,
PlaceholderSectionMemberGUID,
PlaceholderIndex,
FillInMemberGUID,
FillinMemberName)
AS
(
select
ModelGUID,
PlaceholderSectionMemberGUID ,
PlaceholderIndex,
FillInMemberGUID,
FillinMemberName
from
ScoreFillin
where
ModelGUID in (select ModelGUID from ScoreFillinSetManyStaging where InstanceGUID = @iguid)
and PlaceholderSectionMemberGUID in (select PlaceholderSectionMemberGUID from ScoreFillinSetManyStaging where InstanceGUID=@iguid) --Changed
and IsDeleted = 0
)
MERGE tgt as target
USING(
select
ModelGUID,
PlaceholderSectionMemberGUID,
row_number() over (partition by modelguid, placeholdersectionmemberguid order by sortorder) - 1 as PlaceholderIndex,
FillInMemberGUID,
FillinMemberName
from
(
select
modelguid,
placeholdersectionmemberguid,
min(sortorder)as SortOrder,
fillinmemberguid,
min(fillinmembername) as fillinmembername
from
ScoreFillinSetManyStaging
where InstanceGUID=@iguid -- Changed
group by
modelguid,
placeholdersectionmemberguid,
FillInMemberGUID,
MakeUnique
) src
) as source
ON (
target.ModelGUID = source.ModelGUID
and target.PlaceholderSectionMemberGUID = source.PlaceholderSectionMemberGUID
and target.PlaceholderIndex = source.PlaceholderIndex
and target.FillInMemberGUID = source.FillInMemberGUID
)
WHEN MATCHED AND target.FillinMemberName <> source.FillinMemberName THEN
UPDATE SET target.FillinMemberName = source.FillinMemberName
WHEN NOT MATCHED BY TARGET THEN
INSERT ( ModelGUID,
PlaceholderSectionMemberGUID,
PlaceholderIndex,
FillInMemberGUID,
FillinMemberName)
VALUES (
ModelGUID,
PlaceholderSectionMemberGUID,
PlaceholderIndex,
FillInMemberGUID,
FillinMemberName)
WHEN NOT MATCHED BY SOURCE THEN
DELETE --UPDATE SET target.IsDeleted = 1
OUTPUT $action INTO @SummaryOfChanges;
select Change, COUNT(*) from @SummaryOfChanges group by change
RETURN
GO
---------------------------------------------
-- dbo.procScoreFillInSetManyClearThoseBeingSetNoDeletes
create proc [dbo].[procScoreFillInSetManyClearThoseBeingSetNoDeletes]
@iguid uniqueidentifier
as
DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
WITH tgt (ModelGUID,
PlaceholderSectionMemberGUID,
PlaceholderIndex,
FillInMemberGUID,
FillinMemberName)
AS
(
select
ModelGUID,
PlaceholderSectionMemberGUID ,
PlaceholderIndex,
FillInMemberGUID,
FillinMemberName
from
ScoreFillin
where
ModelGUID in (select ModelGUID from ScoreFillinSetManyStaging where InstanceGUID = @iguid)
and PlaceholderSectionMemberGUID in (select PlaceholderSectionMemberGUID from ScoreFillinSetManyStaging where InstanceGUID=@iguid) --Changed
and IsDeleted = 0
)
MERGE tgt as target
USING(
select
ModelGUID,
PlaceholderSectionMemberGUID,
row_number() over (partition by modelguid, placeholdersectionmemberguid order by sortorder) - 1 as PlaceholderIndex,
FillInMemberGUID,
FillinMemberName
from
(
select
modelguid,
placeholdersectionmemberguid,
min(sortorder)as SortOrder,
fillinmemberguid,
min(fillinmembername) as fillinmembername
from
ScoreFillinSetManyStaging
where InstanceGUID=@iguid -- Changed
group by
modelguid,
placeholdersectionmemberguid,
FillInMemberGUID,
MakeUnique
) src
) as source
ON (
target.ModelGUID = source.ModelGUID
and target.PlaceholderSectionMemberGUID = source.PlaceholderSectionMemberGUID
and target.PlaceholderIndex = source.PlaceholderIndex
and target.FillInMemberGUID = source.FillInMemberGUID
)
WHEN MATCHED AND target.FillinMemberName <> source.FillinMemberName THEN
UPDATE SET target.FillinMemberName = source.FillinMemberName
WHEN NOT MATCHED BY TARGET THEN
INSERT ( ModelGUID,
PlaceholderSectionMemberGUID,
PlaceholderIndex,
FillInMemberGUID,
FillinMemberName)
VALUES (
ModelGUID,
PlaceholderSectionMemberGUID,
PlaceholderIndex,
FillInMemberGUID,
FillinMemberName)
OUTPUT $action INTO @SummaryOfChanges;
select Change, COUNT(*) from @SummaryOfChanges group by change
GO
---------------------------------------------
-- dbo.procScoreFillinCompressIndices
CREATE proc [dbo].[procScoreFillinCompressIndices]
@modelguid uniqueidentifier
as
select
fi.FillinGUID,
ROW_NUMBER() over (partition by fi.modelguid, fi.placeholdersectionmemberguid order by fi.placeholderindex ) -1 as PlaceholderIndex
into #CompressedIndices
from
ScoreFillin fi
where
fi.ModelGUID = @modelguid
declare @higuid uniqueidentifier
set @higuid = NEWID()
declare @cnt int
update
ScoreFillin
set
PlaceholderIndex = CI.PlaceholderIndex,
HistoryItemGUID = @higuid
from
ScoreFillin
inner join #CompressedIndices ci on ScoreFillin.FillinGUID = ci.fillInGUID
where
ScoreFillin.PlaceholderIndex <> ci.PlaceholderIndex
set @cnt = @@ROWCOUNT
drop table #CompressedIndices
if @cnt > 0 begin
exec [procLogObjectHistoryItemGUIDObjectType] 'Strata.EMF.Biz.Data.ScoreDataHistoryItem, Strata.EMF.Biz', @modelguid, 'Compressed Fillin Indices', @cnt, @higuid
end
GO
---------------------------------------------
-- dbo.procScoreFillinExclusivityLogMemberNameRefresh
CREATE proc [dbo].[procScoreFillinExclusivityLogMemberNameRefresh]
@modelGuidCsv nvarchar(max),
@isDebug bit = 0
AS
DECLARE @dimobj nvarchar(max)
DECLARE @keyname nvarchar(64)
DECLARE @sql nvarchar(max)
DECLARE @DimensionsByModel TABLE(dimobj varchar(max), keyname nvarchar(64))
INSERT INTO @DimensionsByModel (dimobj, keyname)
SELECT DISTINCT sa.DimensionSQLObjectExpression, dk.SQLColumnName
FROM [dbo].[viewScoreAttribute] sa
INNER JOIN [dbo].[ScoreDimension] d on d.DimensionGUID = sa.DimensionGUID
INNER JOIN [dbo].[viewScoreAttribute] dk on dk.AttributeGUID = d.DefaultLookupKeyGUID and dk.SQLColumnName like '%Name'
WHERE EXISTS(
SELECT TOP 1 1
FROM [dbo].[ScoreCompositeLink] cl WITH (readuncommitted)
INNER JOIN [dbo].[EMFModelTemplateLinkSource] ls WITH (readuncommitted) ON ls.ParentScoreCompositeTableGUID = cl.CompositeGUID
INNER JOIN [dbo].[XPlan] p WITH (readuncommitted) ON p.ModelTemplateGUID = ls.ModelTemplateGUID and p.PlanGUID in(SELECT GUID FROM dbo.ConvertCSGuidsToTable(@modelGuidCsv, ','))
WHERE
cl.Key2GUID = sa.AttributeGUID
AND cl.IsPlaceholder = 1
)
DECLARE @COUNT INT
SELECT @COUNT = COUNT(1) FROM @DimensionsByModel
WHILE(@COUNT > 0)
BEGIN
SELECT TOP 1 @dimobj = dimobj, @keyname = keyname FROM @DimensionsByModel
set @sql = '
UPDATE SF
SET Message = REPLACE(SF.Message, SF.FillinMemberGUID, D.' + @keyname + ')
FROM ScoreFillinExclusivityLogItem SF
INNER JOIN '+ @dimobj + ' D ON D.MemberGUID = SF.FillinMemberGUID
WHERE
SF.ModelGUID IN (SELECT guid FROM dbo.ConvertCSGuidsToTable(''' + @modelGuidCsv + ''', '',''))
AND D.' + @keyname + ' != ''''
AND SF.Message LIKE ''%''+CAST(SF.FillinMemberGUID AS nvarchar(36))+''%''
'
IF (@isDebug = 0) BEGIN
EXEC(@sql)
END ELSE BEGIN
PRINT @sql
END
SET @COUNT -= 1
DELETE FROM @DimensionsByModel
WHERE dimobj = @dimobj AND keyname = @keyname
END
GO
---------------------------------------------
-- dbo.procScoreFillinMemberNameRefresh
CREATE proc dbo.procScoreFillinMemberNameRefresh
@modelGuidCsv nvarchar(max) = '',
@isDebug bit = 0
as
set nocount on
declare @dimobj nvarchar(450)
declare @keyname nvarchar(450)
declare @sql nvarchar(max)
if (@modelGuidCsv = '') begin
if(exists(select 1 from [dbo].[ScoreFillin] with (readuncommitted) where FillinMemberName in('', 'default'))) begin
declare crsDimensions cursor fast_forward for
select distinct
sa.DimensionSQLObjectExpression,
dk.SQLColumnName
from
[dbo].[viewScoreAttribute] sa
inner join [dbo].[ScoreDimension] d on d.DimensionGUID = sa.DimensionGUID
inner join [dbo].[viewScoreAttribute] dk on dk.AttributeGUID = d.DefaultLookupKeyGUID and dk.SQLColumnName like '%Name'
where
exists(select 1 from [dbo].[ScoreCompositeLink] cl with (readuncommitted) where cl.Key2GUID = sa.AttributeGUID and cl.IsPlaceholder = 1)
open crsDimensions
fetch next from crsDimensions into @dimobj, @keyname
while(@@fetch_status = 0) begin
set @sql = '
update SF set SF.FillinMemberName = D.' + @keyname + '
from
ScoreFillin SF
inner join ' + @dimobj + ' D on D.MemberGUID = SF.FillinMemberGUID
where
SF.FillinMemberName in('''', ''default'')
'
if (@isDebug = 0) begin
exec(@sql)
end else begin
print @sql
end
set @sql = '
update SF set SF.FillinMemberName = D.' + @keyname + '
from
ScoreFillinRefreshLogItem SF
inner join ' + @dimobj + ' D on D.MemberGUID = SF.FillinMemberGUID
where
SF.FillinMemberName in('''', ''default'')
'
if (@isDebug = 0) begin
exec(@sql)
end else begin
print @sql
end
fetch next from crsDimensions into @dimobj, @keyname
end
close crsDimensions
deallocate crsDimensions
end
--handle self fillins specially
if (@isDebug = 0) begin
update sf set sf.FillinMemberName = xp.Name
from
[dbo].[ScoreFillin] sf
inner join [dbo].[XPlan] xp with (readuncommitted) on xp.PlanGUID = sf.ModelGUID and sf.FillinMemberGUID = xp.PlanGUID
where
sf.FillinMemberName <> xp.Name
and xp.Name != ''
end else begin
print '
update sf set sf.FillinMemberName = xp.Name
from
[dbo].[ScoreFillin] sf
inner join [dbo].[XPlan] xp with (readuncommitted) on xp.PlanGUID = sf.ModelGUID and sf.FillinMemberGUID = xp.PlanGUID
where
sf.FillinMemberName <> xp.Name
and xp.Name != '''''
end
end else begin
if(exists(select 1 from [dbo].[ScoreFillin] with (readuncommitted) where FillinMemberName in ('', 'default') and ModelGUID in(select guid from dbo.ConvertCSGuidsToTable(@modelGuidCsv, ',')))) begin
declare crsDimensionsByModel cursor fast_forward for
select distinct
sa.DimensionSQLObjectExpression,
dk.SQLColumnName
from
[dbo].[viewScoreAttribute] sa
inner join [dbo].[ScoreDimension] d on d.DimensionGUID = sa.DimensionGUID
inner join [dbo].[viewScoreAttribute] dk on dk.AttributeGUID = d.DefaultLookupKeyGUID and dk.SQLColumnName like '%Name'
where
exists(
select 1
from
[dbo].[ScoreCompositeLink] cl with (readuncommitted)
inner join [dbo].[EMFModelTemplateLinkSource] ls with (readuncommitted) on ls.ParentScoreCompositeTableGUID = cl.CompositeGUID
inner join [dbo].[XPlan] p with (readuncommitted) on p.ModelTemplateGUID = ls.ModelTemplateGUID and p.PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@modelGuidCsv, ','))
where
cl.Key2GUID = sa.AttributeGUID
and cl.IsPlaceholder = 1
)
open crsDimensionsByModel
fetch next from crsDimensionsByModel into @dimobj, @keyname
while(@@fetch_status = 0) begin
set @sql = '
update SF set SF.FillinMemberName = D.' + @keyname + '
from
ScoreFillin SF
inner join ' + @dimobj + ' D on D.MemberGUID = SF.FillinMemberGUID
where
SF.FillinMemberName in('''', ''default'')
and ModelGUID in(select guid from dbo.ConvertCSGuidsToTable(''' + @modelGuidCsv + ''', '',''))
'
if (@isDebug = 0) begin
exec(@sql)
end else begin
print @sql
end
set @sql = '
update SF set SF.FillinMemberName = D.' + @keyname + '
from
ScoreFillinRefreshLogItem SF
inner join ' + @dimobj + ' D on D.MemberGUID = SF.FillinMemberGUID
where
SF.FillinMemberName in('''', ''default'')
and ModelGUID in(select guid from dbo.ConvertCSGuidsToTable(''' + @modelGuidCsv + ''', '',''))
'
if (@isDebug = 0) begin
exec(@sql)
end else begin
print @sql
end
fetch next from crsDimensionsByModel into @dimobj, @keyname
end
close crsDimensionsByModel
deallocate crsDimensionsByModel
end
--handle self fillins specially
if (@isDebug = 0) begin
update sf set sf.FillinMemberName = xp.Name
from
[dbo].[ScoreFillin] sf
inner join [dbo].[XPlan] xp with (readuncommitted) on xp.PlanGUID = sf.ModelGUID and sf.FillinMemberGUID = xp.PlanGUID
where
sf.FillinMemberName <> xp.Name
and xp.Name != ''
and xp.PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@modelGuidCsv, ','))
end else begin
print '
update sf set sf.FillinMemberName = xp.Name
from
[dbo].[ScoreFillin] sf
inner join [dbo].[XPlan] xp with (readuncommitted) on xp.PlanGUID = sf.ModelGUID and sf.FillinMemberGUID = xp.PlanGUID
where
sf.FillinMemberName <> xp.Name
and xp.Name != ''''
and xp.PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@modelGuidCsv, '',''))'
end
end
GO
---------------------------------------------
-- dbo.procScoreFillinSetByTemplateDefault
CREATE proc [dbo].[procScoreFillinSetByTemplateDefault]
@planguid uniqueidentifier
,@isCopy as bit = 0
as
declare @fillInTemplateName nvarchar(100)
select @fillInTemplateName = scoredefaultfillInTemplateName from PlanType
where PlanTypeGUID = (select PlanTypeGUID from XPlan where PlanGUID = @planguid)
if @fillInTemplateName is null return
if @fillInTemplateName = '' return
if @isCopy = 1 begin
exec procScoreFillInSetByTemplateJustSelf @planguid, @fillInTemplateName
end else begin
exec procScoreFillInSetByTemplate @planguid, @fillInTemplateName
end
GO
---------------------------------------------
-- dbo.procScoreFillinTableAudit
CREATE proc [dbo].[procScoreFillinTableAudit]
@modelGUID uniqueidentifier,
@isAutoFixing bit = 1
as
set nocount on
declare @rowid int = -1
if((select count(*) from [data].[ScoreFillinCacheAudit] (readuncommitted)) > 0) begin
select @rowid = max(RowID) from [data].[ScoreFillinCacheAudit] (readuncommitted)
end
declare @tableName nvarchar(150)
declare @phKeyName nvarchar(100)
declare @phDimTable nvarchar(450)
declare @fillinKeyName nvarchar(100)
declare @fillinDimTable nvarchar(450)
declare @fillinDimGUID uniqueidentifier
declare crsInfo cursor fast_forward for
select distinct
'ScoreFillin_' + replace(A2.DimensionName, ' ', '') as TableName,
A1.SQLColumnName as PHKeyName,
A1.DimensionSQLObjectExpression as PHDimTable,
A2.SQLColumnName as FillinKeyName,
A2.DimensionSQLObjectExpression as FillinDimTable,
A2.DimensionGUID as FillinDimGUID
from
ScoreCompositeLink CL (readuncommitted)
inner join viewScoreAttribute A1 on A1.AttributeGUID = CL.Key1GUID
inner join viewScoreAttribute A2 on A2.AttributeGUID = CL.Key2GUID
inner join EMFModelTemplateLinkSource LS (readuncommitted) on LS.ParentScoreCompositeTableGUID = CL.CompositeGUID
inner join EMFModelTemplate MT (readuncommitted) on MT.ModelTemplateGUID = LS.ModelTemplateGUID
inner join sys.tables t on t.Name = 'ScoreFillin_' + replace(A2.DimensionName, ' ', '')
inner join dbo.XPlan p on p.ModelTemplateGUID = MT.ModelTemplateGUID
where
CL.IsPlaceholder = 1
and MT.IsScoreFillinAdvancedMode = 1
and p.PlanGUID = @modelGUID
open crsInfo
fetch next from crsInfo into @tableName, @phKeyName, @phDimTable, @fillinKeyName, @fillinDimTable, @fillinDimGUID
declare @sql nvarchar(max)
while(@@FETCH_STATUS = 0) begin
set @sql = '
insert into data.ScoreFillinCacheAudit ([FillinGUID], [ModelGUID], [DimensionGUID], [Problem])
select [FillinGUID], [ModelGUID], ''' + cast(@fillinDimGUID as nvarchar(36)) + ''', ''ScoreFillin exists, ' + @tableName + ' missing''
from ScoreFillin (readuncommitted)
where FillinMemberGUID in (select fk.MemberGUID from ' + @fillinDimTable + ' fk)
and FillinGUID not in(select c.FillinGUID from [data].[' + @tableName + '] c (readuncommitted))
and ModelGUID = ''' + cast(@modelGUID as nvarchar(36)) + ''';
insert into data.ScoreFillinCacheAudit ([FillinGUID], [ModelGUID], [DimensionGUID], [Problem])
select [FillinGUID], [ModelGUID], ''' + cast(@fillinDimGUID as nvarchar(36)) + ''', ''ScoreFillin missing, ' + @tableName + ' exists''
from [data].[' + @tableName + '] (readuncommitted)
where FillinMemberGUID in (select fk.MemberGUID from ' + @fillinDimTable + ' fk)
and FillinGUID not in(select l.FillinGUID from ScoreFillin l (readuncommitted))
and ModelGUID = ''' + cast(@modelGUID as nvarchar(36)) + ''';
insert into data.ScoreFillinCacheAudit ([FillinGUID], [ModelGUID], [DimensionGUID], [Problem])
select fi.[FillinGUID], fi.[ModelGUID], ''' + cast(@fillinDimGUID as nvarchar(36)) + ''', ''ScoreFillin order '' + cast(fi.PlaceholderIndex as nvarchar(8)) + '', ' + @tableName + ' '' + cast(c.PlaceholderIndex as nvarchar(8))
from ScoreFillin fi (readuncommitted)
inner join [data].[' + @tableName + '] c (readuncommitted) on c.FillinGUID = fi.FillinGUID
where fi.PlaceholderIndex != c.PlaceholderIndex
and fi.ModelGUID = ''' + cast(@modelGUID as nvarchar(36)) + ''';
'
exec(@sql)
fetch next from crsInfo into @tableName, @phKeyName, @phDimTable, @fillinKeyName, @fillinDimTable, @fillinDimGUID
end
close crsInfo
deallocate crsInfo
if ((@isAutoFixing = 1) and (exists(select 1 from [data].[ScoreFillinCacheAudit] (readuncommitted) where RowID > @rowid and ModelGUID = @modelGUID))) begin
exec [dbo].[procScoreFillinTableRefresh] @modelGUID
exec [dbo].[procInvalidateModelWorkbookCache] @modelGUID, 0, 0, 'procScoreFillinTableAudit'
end
GO
---------------------------------------------
-- dbo.procScoreFillinTableAuditAll
/************************************************************
** Author: gforeman
** Create Date: 2012
** Description:
** This proc serves as a safeguard against fillin
** cache tables getting out of sync with ScoreFillin.
** Theoretically, if all Jazz functions and custom scripts
** are setup and working correctly, this should be
** unnecessary. But if anything forgets to refresh
** cache after updating members, you have problems.
** Usage:
** Run and then inspect the returned contents of
** data.ScoreFillinCacheAudit for a listing of issues that
** were encountered.
*************************************************************/
CREATE proc procScoreFillinTableAuditAll
@isAutoFixing bit = 0
as
set nocount on
declare @rowid int = -1
if((select count(*) from [data].[ScoreFillinCacheAudit] (readuncommitted)) > 0) begin
select @rowid = max(RowID) from [data].[ScoreFillinCacheAudit] (readuncommitted)
end
declare @tableName nvarchar(150)
declare @phKeyName nvarchar(100)
declare @phDimTable nvarchar(450)
declare @fillinKeyName nvarchar(100)
declare @fillinDimTable nvarchar(450)
declare @fillinDimGUID uniqueidentifier
declare crsInfo cursor fast_forward for
select distinct
'ScoreFillin_' + replace(A2.DimensionName, ' ', '') as TableName,
A1.SQLColumnName as PHKeyName,
A1.DimensionSQLObjectExpression as PHDimTable,
A2.SQLColumnName as FillinKeyName,
A2.DimensionSQLObjectExpression as FillinDimTable,
A2.DimensionGUID as FillinDimGUID
from
ScoreCompositeLink CL (readuncommitted)
inner join viewScoreAttribute A1 on A1.AttributeGUID = CL.Key1GUID
inner join viewScoreAttribute A2 on A2.AttributeGUID = CL.Key2GUID
inner join EMFModelTemplateLinkSource LS (readuncommitted) on LS.ParentScoreCompositeTableGUID = CL.CompositeGUID
inner join EMFModelTemplate MT (readuncommitted) on MT.ModelTemplateGUID = LS.ModelTemplateGUID
inner join sys.tables t on t.Name = 'ScoreFillin_' + replace(A2.DimensionName, ' ', '')
where
CL.IsPlaceholder = 1
and MT.IsScoreFillinAdvancedMode = 1
open crsInfo
fetch next from crsInfo into @tableName, @phKeyName, @phDimTable, @fillinKeyName, @fillinDimTable, @fillinDimGUID
declare @sql nvarchar(max)
while(@@FETCH_STATUS = 0) begin
set @sql = '
insert into data.ScoreFillinCacheAudit ([FillinGUID], [ModelGUID], [DimensionGUID], [Problem])
select [FillinGUID], [ModelGUID], ''' + cast(@fillinDimGUID as nvarchar(36)) + ''', ''ScoreFillin exists, ' + @tableName + ' missing''
from ScoreFillin (readuncommitted)
where FillinMemberGUID in (select fk.MemberGUID from ' + @fillinDimTable + ' fk)
and FillinGUID not in(select c.FillinGUID from [data].[' + @tableName + '] c (readuncommitted))
and ModelGUID in(select p.PlanGUID from XPlan p (readuncommitted) inner join EMFModelTemplate t (readuncommitted) on t.ModelTemplateGUID = p.ModelTemplateGUID and t.IsScoreFillinAdvancedMode = 1);
insert into data.ScoreFillinCacheAudit ([FillinGUID], [ModelGUID], [DimensionGUID], [Problem])
select [FillinGUID], [ModelGUID], ''' + cast(@fillinDimGUID as nvarchar(36)) + ''', ''ScoreFillin missing, ' + @tableName + ' exists''
from [data].[' + @tableName + '] (readuncommitted)
where FillinMemberGUID in (select fk.MemberGUID from ' + @fillinDimTable + ' fk)
and FillinGUID not in(select l.FillinGUID from ScoreFillin l (readuncommitted))
and ModelGUID in(select p.PlanGUID from XPlan p (readuncommitted) inner join EMFModelTemplate t (readuncommitted) on t.ModelTemplateGUID = p.ModelTemplateGUID and t.IsScoreFillinAdvancedMode = 1);
insert into data.ScoreFillinCacheAudit ([FillinGUID], [ModelGUID], [DimensionGUID], [Problem])
select fi.[FillinGUID], fi.[ModelGUID], ''' + cast(@fillinDimGUID as nvarchar(36)) + ''', ''ScoreFillin order '' + cast(fi.PlaceholderIndex as nvarchar(8)) + '', ' + @tableName + ' '' + cast(c.PlaceholderIndex as nvarchar(8))
from ScoreFillin fi (readuncommitted)
inner join [data].[' + @tableName + '] c (readuncommitted) on c.FillinGUID = fi.FillinGUID
where fi.PlaceholderIndex != c.PlaceholderIndex;
'
exec(@sql)
fetch next from crsInfo into @tableName, @phKeyName, @phDimTable, @fillinKeyName, @fillinDimTable, @fillinDimGUID
end
close crsInfo
deallocate crsInfo
if (@isAutoFixing = 1) begin
declare @dimensionGUID uniqueidentifier
declare crsDimensions cursor fast_forward for select distinct DimensionGUID from [data].[ScoreFillinCacheAudit] (readuncommitted) where RowID > @rowid
open crsDimensions
fetch next from crsDimensions into @dimensionGUID
while(@@fetch_status = 0) begin
exec [dbo].[procScoreFillinTableRefreshByDimension] @dimensionGUID
fetch next from crsDimensions into @dimensionGUID
end
close crsDimensions
deallocate crsDimensions
declare @invwhere nvarchar(max)
set @invwhere = 'PlanGUID in(select ModelGUID from [data].[ScoreFillinCacheAudit] (readuncommitted) where RowID > ' + cast(@rowid as nvarchar(16)) + ')'
exec [dbo].[procInvalidateModelWorkbookCacheByWhereClause] @invwhere, 0, 'procScoreFillinTableAuditAll'
end
select * from [data].[ScoreFillinCacheAudit] where RowID > @rowid
GO
---------------------------------------------
-- dbo.procScoreFillinTableRebuild
CREATE proc [dbo].[procScoreFillinTableRebuild]
@phDimensionGUID uniqueidentifier,
@fillinDimensionGUID uniqueidentifier,
@isDebug bit = 0
as
set nocount on
declare @tableName nvarchar(150)
select @tableName = 'ScoreFillin_' + replace(FriendlyName, ' ', '') from ScoreDimension where DimensionGUID = @fillinDimensionGUID
declare @phKeyName nvarchar(100)
declare @phKeyType int
select @phKeyName = A.SQLColumnName, @phKeyType = A.ColumnType from viewScoreAttribute A inner join ScoreDimension D on D.DimensionGUID = A.DimensionGUID and D.DefaultKeyGUID = A.AttributeGUID and D.DimensionGUID = @phDimensionGUID
declare @fillinKeyName nvarchar(100)
declare @fillinKeyType int
select @fillinKeyName = A.SQLColumnName, @phKeyType = A.ColumnType from viewScoreAttribute A inner join ScoreDimension D on D.DimensionGUID = A.DimensionGUID and D.DefaultKeyGUID = A.AttributeGUID and D.DimensionGUID = @fillinDimensionGUID
declare @error nvarchar(450)
if (@phKeyType != 48 and @phKeyType != 52 and @phKeyType != 56 and @phKeyType != 127) begin
set @error = 'Fillin table ' + @tableName + ' cannot be created because the placeholder dimension has a non-integer default key.'
RAISERROR (@error, 18, 0)
return
end
if (@fillinKeyType != 48 and @fillinKeyType != 52 and @fillinKeyType != 56 and @fillinKeyType != 127) begin
set @error = 'Fillin table ' + @tableName + ' cannot be created because the fillin dimension has a non-integer default key.'
RAISERROR (@error, 18, 0)
return
end
declare @sql nvarchar(max)
--drop any existing instance of the table
set @sql = '
if ((select count(*) from sys.tables where name = ''' + @tableName + ''') > 0) begin
drop table data.' + @tableName + '
end'
if (@isDebug = 1) begin print @sql end else begin exec(@sql) end
--create the table
set @sql = '
CREATE TABLE [data].[' + @tableName + '] (
[RowID] [int] IDENTITY(1,1) NOT NULL,
[FillinGUID] [uniqueidentifier] NOT NULL,
[ModelGUID] [uniqueidentifier] NOT NULL,
[PlaceholderSectionMemberGUID] [uniqueidentifier] NOT NULL,
[PlaceholderIndex] [int] NOT NULL,
[FillinMemberGUID] [uniqueidentifier] NOT NULL,
[FillinMemberName] [nvarchar](max) NOT NULL,
[IsDeleted] [bit] NOT NULL,
[HistoryItemGUID] [uniqueidentifier] NOT NULL,
[' + @phKeyName + '] [int] NOT NULL,
[' + @fillinKeyName + '] [int] NOT NULL,
CONSTRAINT [PK_' + @tableName + '] PRIMARY KEY NONCLUSTERED
( [RowID] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]'
if (@isDebug = 1) begin print @sql end else begin exec(@sql) end
--add default values
set @sql = '
ALTER TABLE [data].[' + @tableName + '] ADD CONSTRAINT [DF_' + @tableName + '_' + @phKeyName + '] DEFAULT ((0)) FOR [' + @phKeyName + ']
ALTER TABLE [data].[' + @tableName + '] ADD CONSTRAINT [DF_' + @tableName + '_' + @fillinKeyName + '] DEFAULT ((0)) FOR [' + @fillinKeyName + ']'
if (@isDebug = 1) begin print @sql end else begin exec(@sql) end
--create clustered index
set @sql = '
CREATE CLUSTERED INDEX [IX_' + @tableName + '_Cluster] ON [data].[' + @tableName + '] (
[ModelGUID] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]'
if (@isDebug = 1) begin print @sql end else begin exec(@sql) end
--create index on ID columns
set @sql = '
CREATE NONCLUSTERED INDEX [IX_' + @tableName + '_ByIDs] ON [data].[' + @tableName + '] (
[ModelGUID] ASC,
[PlaceholderIndex] ASC,
[' + @phKeyName + '] ASC,
[' + @fillinKeyName + '] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]'
if (@isDebug = 1) begin print @sql end else begin exec(@sql) end
--prevent duplicate fillins
set @sql = '
CREATE UNIQUE NONCLUSTERED INDEX IX_' + @tableName + '_ByFillinGUID ON [data].[' + @tableName + '] (
FillinGUID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]'
if (@isDebug = 1) begin print @sql end else begin exec(@sql) end
GO
---------------------------------------------
-- dbo.procScoreFillinTableRebuildAll
--Author: gforeman
--Branch: Earwig
--Forward
create proc procScoreFillinTableRebuildAll
@isDebug bit = 0
as
if ((select COUNT(*) from EMFModelTemplate where IsScoreFillinAdvancedMode = 1) = 0) begin return end
declare @phDimensionGUID uniqueidentifier
declare @fillinDimensionGUID uniqueidentifier
declare crsDimensions cursor fast_forward for
select distinct
A1.DimensionGUID as PHDimensionGUID,
A2.DimensionGUID as FillinDimensionGUID
from
ScoreCompositeLink CL
inner join viewScoreAttribute A1 on A1.AttributeGUID = CL.Key1GUID
inner join viewScoreAttribute A2 on A2.AttributeGUID = CL.Key2GUID
inner join EMFModelTemplateLinkSource LS on LS.ParentScoreCompositeTableGUID = CL.CompositeGUID
inner join EMFModelTemplate MT on MT.ModelTemplateGUID = LS.ModelTemplateGUID
where
CL.IsPlaceholder = 1
and MT.IsScoreFillinAdvancedMode = 1
open crsDimensions
fetch next from crsDimensions into @phDimensionGUID, @fillinDimensionGUID
while(@@FETCH_STATUS = 0) begin
exec procScoreFillinTableRebuild @phDimensionGUID, @fillinDimensionGUID, @isDebug
fetch next from crsDimensions into @phDimensionGUID, @fillinDimensionGUID
end
close crsDimensions
deallocate crsDimensions
exec procScoreFillinTableRefreshAll @isDebug
GO
---------------------------------------------
-- dbo.procScoreFillinTableRefresh
CREATE proc [dbo].[procScoreFillinTableRefresh]
@modelGUIDList nvarchar(max),
@isDebug bit = 0
as
set nocount on
declare @mtguid uniqueidentifier
declare @whereClause nvarchar(max)
declare crsTemplates cursor fast_forward for select distinct MT.ModelTemplateGUID from [dbo].[EMFModelTemplate] MT (readuncommitted) inner join [dbo].[XPlan] P (readuncommitted) on P.ModelTemplateGUID = MT.ModelTemplateGUID where P.PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@modelGUIDList, ','))
open crsTemplates
fetch next from crsTemplates into @mtguid
while(@@FETCH_STATUS = 0) begin
set @whereClause = 'in (select xp.PlanGUID from XPlan xp (readuncommitted) inner join dbo.ConvertCSGuidsToTable(''' + @modelGUIDList + ''', '','') cs on cs.guid = xp.PlanGUID where xp.ModelTemplateGUID = ''' + CAST(@mtguid as nvarchar(36)) + ''')'
exec procScoreFillinTableRefreshWorker @mtguid, @whereClause, @isDebug
fetch next from crsTemplates into @mtguid
end
close crsTemplates
deallocate crsTemplates
GO
---------------------------------------------
-- dbo.procScoreFillinTableRefreshAll
CREATE proc procScoreFillinTableRefreshAll
@isDebug bit = 0
as
declare @ptguid uniqueidentifier
declare crsTypes cursor fast_forward for select PlanTypeGUID from [dbo].[PlanType] (readuncommitted)
open crsTypes
fetch next from crsTypes into @ptguid
while (@@FETCH_STATUS = 0) begin
exec procScoreFillinTableRefreshByPlanType @ptguid, @isDebug
fetch next from crsTypes into @ptguid
end
close crsTypes
deallocate crsTypes
GO
---------------------------------------------
-- dbo.procScoreFillinTableRefreshByDimension
CREATE proc [dbo].[procScoreFillinTableRefreshByDimension]
@dimensionGUID uniqueidentifier,
@isDebug bit = 0,
@whereClause nvarchar(max) = ''
as
set nocount on
declare @tableName nvarchar(150)
declare @phKeyName nvarchar(100)
declare @phDimTable nvarchar(450)
declare @fillinKeyName nvarchar(100)
declare @fillinDimTable nvarchar(450)
declare @fillinDimGUID uniqueidentifier
declare crsInfo cursor fast_forward for
select distinct
'ScoreFillin_' + replace(A2.DimensionName, ' ', '') as TableName,
A1.SQLColumnName as PHKeyName,
A1.DimensionSQLObjectExpression as PHDimTable,
A2.SQLColumnName as FillinKeyName,
A2.DimensionSQLObjectExpression as FillinDimTable,
A2.DimensionGUID
from
ScoreCompositeLink CL (readuncommitted)
inner join viewScoreAttribute A1 on A1.AttributeGUID = CL.Key1GUID
inner join viewScoreAttribute A2 on A2.AttributeGUID = CL.Key2GUID
inner join EMFModelTemplateLinkSource LS (readuncommitted) on LS.ParentScoreCompositeTableGUID = CL.CompositeGUID
inner join EMFModelTemplate MT (readuncommitted) on MT.ModelTemplateGUID = LS.ModelTemplateGUID
where
CL.IsPlaceholder = 1
and MT.IsScoreFillinAdvancedMode = 1
and (A1.DimensionGUID = @dimensionGUID or A2.DimensionGUID = @dimensionguid)
open crsInfo
fetch next from crsInfo into @tableName, @phKeyName, @phDimTable, @fillinKeyName, @fillinDimTable, @fillinDimGUID
declare @sql nvarchar(max)
while(@@FETCH_STATUS = 0) begin
if ((@dimensionGUID = @fillinDimGUID) and (len(@whereClause) > 0)) begin
set @sql = '
begin tran
delete from data.' + @tableName + ' where FillinMemberGUID in(select C.MemberGUID from ' + @fillinDimTable + ' C where ' + @whereClause + ');
delete from data.' + @tableName + ' where FillinMemberGUID not in(select C.MemberGUID from ' + @fillinDimTable + ' C);
insert into [data].[' + @tableName + '] ([FillinGUID], [ModelGUID], [PlaceholderSectionMemberGUID], [PlaceholderIndex], [FillinMemberGUID], [FillinMemberName], [IsDeleted], [HistoryItemGUID])
select [FillinGUID], [ModelGUID], [PlaceholderSectionMemberGUID], [PlaceholderIndex], [FillinMemberGUID], [FillinMemberName], [IsDeleted], [HistoryItemGUID]
from ScoreFillin (readuncommitted)
where FillinMemberGUID in (select C.MemberGUID from ' + @fillinDimTable + ' C where ' + @whereClause + ');
update FI set FI.' + @phKeyName + ' = PH.' + @phKeyName + ' from data.' + @tableName + ' FI inner join ' + @phDimTable + ' PH on PH.MemberGUID = FI.PlaceholderSectionMemberGUID where FI.FillinMemberGUID in (select C.MemberGUID from ' + @fillinDimTable + ' C where ' + @whereClause + ');
update FI set FI.' + @fillinKeyName + ' = PH.' + @fillinKeyName + ' from data.' + @tableName + ' FI inner join ' + @fillinDimTable + ' PH on PH.MemberGUID = FI.FillinMemberGUID where FI.FillinMemberGUID in (select C.MemberGUID from ' + @fillinDimTable + ' C where ' + @whereClause + ');
commit tran
'
end else begin
set @sql = '
begin tran
truncate table data.' + @tableName + ';
insert into [data].[' + @tableName + '] ([FillinGUID], [ModelGUID], [PlaceholderSectionMemberGUID], [PlaceholderIndex], [FillinMemberGUID], [FillinMemberName], [IsDeleted], [HistoryItemGUID])
select [FillinGUID], [ModelGUID], [PlaceholderSectionMemberGUID], [PlaceholderIndex], [FillinMemberGUID], [FillinMemberName], [IsDeleted], [HistoryItemGUID]
from ScoreFillin (readuncommitted)
where FillinMemberGUID in (select fk.MemberGUID from ' + @fillinDimTable + ' fk);
update FI set FI.' + @phKeyName + ' = PH.' + @phKeyName + ' from data.' + @tableName + ' FI inner join ' + @phDimTable + ' PH on PH.MemberGUID = FI.PlaceholderSectionMemberGUID;
update FI set FI.' + @fillinKeyName + ' = PH.' + @fillinKeyName + ' from data.' + @tableName + ' FI inner join ' + @fillinDimTable + ' PH on PH.MemberGUID = FI.FillinMemberGUID;
commit tran
'
end
if (@isDebug = 1) begin print @sql end else begin exec(@sql) end
fetch next from crsInfo into @tableName, @phKeyName, @phDimTable, @fillinKeyName, @fillinDimTable, @fillinDimGUID
end
close crsInfo
deallocate crsInfo
GO
---------------------------------------------
-- dbo.procScoreFillinTableRefreshByPlanType
CREATE proc procScoreFillinTableRefreshByPlanType
@planTypeGUID uniqueidentifier,
@isDebug bit = 0
as
declare @templateGUID uniqueidentifier
declare crsTemplates cursor fast_forward for
select distinct
P.ModelTemplateGUID
from
XPlan P (readuncommitted)
where
P.PlanTypeGUID = @planTypeGUID
and exists(select 1 from EMFModelTemplateLinkSource LS (readuncommitted) inner join EMFModelTemplate MT (readuncommitted) on MT.ModelTemplateGUID = LS.ModelTemplateGUID where LS.ModelTemplateGUID = P.ModelTemplateGUID and LS.ParentScoreCompositeTableGUID != dbo.ZeroGUID() and MT.IsScoreFillinAdvancedMode = 1)
open crsTemplates
fetch next from crsTemplates into @templateGUID
declare @whereClause nvarchar(max) = ''
while (@@FETCH_STATUS = 0) begin
set @whereClause = ' in(select xp.PlanGUID from XPlan xp (readuncommitted) where xp.PlanTypeGUID = ''' + cast(@planTypeGUID as nvarchar(36)) + ''' and xp.ModelTemplateGUID = ''' + cast(@templateGUID as nvarchar(36)) + ''')'
exec [dbo].[procScoreFillinTableRefreshWorker] @templateGUID, @whereClause, @isDebug
fetch next from crsTemplates into @templateGUID
end
close crsTemplates
deallocate crsTemplates
GO
---------------------------------------------
-- dbo.procScoreFillinTableRefreshWorker
create proc [dbo].[procScoreFillinTableRefreshWorker]
@modelTemplateGUID uniqueidentifier,
@modelGUIDWhereClause nvarchar(max),
@isDebug bit = 0
as
set nocount on
declare @tableName nvarchar(150)
declare @phKeyName nvarchar(100)
declare @phDimTable nvarchar(450)
declare @fillinKeyName nvarchar(100)
declare @fillinDimTable nvarchar(450)
declare crsInfo cursor fast_forward for
select distinct
'ScoreFillin_' + replace(A2.DimensionName, ' ', '') as TableName,
A1.SQLColumnName as PHKeyName,
A1.DimensionSQLObjectExpression as PHDimTable,
A2.SQLColumnName as FillinKeyName,
A2.DimensionSQLObjectExpression as FillinDimTable
from
ScoreCompositeLink CL (readuncommitted)
inner join viewScoreAttribute A1 on A1.AttributeGUID = CL.Key1GUID
inner join viewScoreAttribute A2 on A2.AttributeGUID = CL.Key2GUID
inner join EMFModelTemplateLinkSource LS (readuncommitted) on LS.ParentScoreCompositeTableGUID = CL.CompositeGUID
inner join EMFModelTemplate MT (readuncommitted) on MT.ModelTemplateGUID = LS.ModelTemplateGUID
where
MT.ModelTemplateGUID = @modelTemplateGUID
and CL.IsPlaceholder = 1
and MT.IsScoreFillinAdvancedMode = 1
open crsInfo
fetch next from crsInfo into @tableName, @phKeyName, @phDimTable, @fillinKeyName, @fillinDimTable
declare @sql nvarchar(max)
while(@@FETCH_STATUS = 0) begin
set @sql = '
begin tran
delete from data.' + @tableName + ' where ModelGUID ' + @modelGUIDWhereClause + ';
insert into [data].[' + @tableName + '] ([FillinGUID], [ModelGUID], [PlaceholderSectionMemberGUID], [PlaceholderIndex], [FillinMemberGUID], [FillinMemberName], [IsDeleted], [HistoryItemGUID])
select [FillinGUID], [ModelGUID], [PlaceholderSectionMemberGUID], [PlaceholderIndex], [FillinMemberGUID], [FillinMemberName], [IsDeleted], [HistoryItemGUID]
from ScoreFillin (readuncommitted)
where FillinMemberGUID in (select fk.MemberGUID from ' + @fillinDimTable + ' fk) and ModelGUID ' + @modelGUIDWhereClause + ';
update FI set FI.' + @phKeyName + ' = PH.' + @phKeyName + ' from data.' + @tableName + ' FI inner join ' + @phDimTable + ' PH on PH.MemberGUID = FI.PlaceholderSectionMemberGUID where FI.ModelGUID ' + @modelGUIDWhereClause + ';
update FI set FI.' + @fillinKeyName + ' = PH.' + @fillinKeyName + ' from data.' + @tableName + ' FI inner join ' + @fillinDimTable + ' PH on PH.MemberGUID = FI.FillinMemberGUID where FI.ModelGUID ' + @modelGUIDWhereClause + ';
commit tran
'
if (@isDebug = 1) begin print @sql end else begin exec(@sql) end
fetch next from crsInfo into @tableName, @phKeyName, @phDimTable, @fillinKeyName, @fillinDimTable
end
close crsInfo
deallocate crsInfo
GO
---------------------------------------------
-- dbo.procScoreFixMeasureAggTypes
CREATE proc [dbo].[procScoreFixMeasureAggTypes]
AS
--AggType 1 = COUNT, safe for all score measures
--Fix Sums = 0
update ScoreMeasure set AggType = 1
where AggType = 0
AND (dbo.IsSQLNumericType((select ColumnTypeValue from viewScoreMeasure where MeasureGUID = ScoreMeasure.MeasureGUID)) = 0)
--Fix Avg = 2
update ScoreMeasure set AggType = 1
where AggType = 2
AND (dbo.IsSQLNumericType((select ColumnTypeValue from viewScoreMeasure where MeasureGUID = ScoreMeasure.MeasureGUID)) = 0)
--Fix Min = 3
update ScoreMeasure set AggType = 1
where AggType = 3
AND (dbo.IsSQLNumericType((select ColumnTypeValue from viewScoreMeasure where MeasureGUID = ScoreMeasure.MeasureGUID)) = 0)
AND (dbo.IsSQLCharacterType((select ColumnTypeValue from viewScoreMeasure where MeasureGUID = ScoreMeasure.MeasureGUID)) = 0)
AND (dbo.IsSQLDateTimeType((select ColumnTypeValue from viewScoreMeasure where MeasureGUID = ScoreMeasure.MeasureGUID)) = 0)
--Fix Max = 4
update ScoreMeasure set AggType = 1
where AggType = 4
AND (dbo.IsSQLNumericType((select ColumnTypeValue from viewScoreMeasure where MeasureGUID = ScoreMeasure.MeasureGUID)) = 0)
AND (dbo.IsSQLCharacterType((select ColumnTypeValue from viewScoreMeasure where MeasureGUID = ScoreMeasure.MeasureGUID)) = 0)
AND (dbo.IsSQLDateTimeType((select ColumnTypeValue from viewScoreMeasure where MeasureGUID = ScoreMeasure.MeasureGUID)) = 0)
GO
---------------------------------------------
-- dbo.procScoreGetDefaultAttributeValue
CREATE PROCEDURE [dbo].[procScoreGetDefaultAttributeValue](
@AttributeGUID uniqueidentifier,
@MemberGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
)
AS
--parameter(s)
--declare @AttributeGUID uniqueidentifier;
--set @AttributeGUID = 'A0965292-E374-4407-9C07-EE613A2F69D0';
----------------------------------------------------
-- Get all necessary values and save to variables
----------------------------------------------------
declare @DimensionExp varchar(256);
declare @KeyColumn varchar(128);
declare @AttColumn varchar(128);
declare @DefaultMemberGUID uniqueidentifier;
select
@KeyColumn = K.SQLColumnName,
@AttColumn = Att.SQLColumnName,
@DimensionExp = [dbo].[GetSQLTableExpression](DIM.SQLSchemaName, DIM.SQLObjectName),
@DefaultMemberGUID = DIM.DefaultMemberGUID
from dbo.ScoreAttribute K
inner join ScoreDimensionGroup GK on GK.DimensionGroupGUID = K.DimensionGroupGUID
inner join ScoreDimension DIM on GK.DimensionGUID = DIM.DimensionGUID
inner join ScoreAttribute ATT on ATT.AttributeGUID = DIM.DefaultLookupKeyGUID
where K.AttributeGUID = @AttributeGUID
print @DimensionExp;
print @AttColumn;
if (@MemberGUID <> '00000000-0000-0000-0000-000000000000') begin
set @DefaultMemberGUID = @MemberGUID
end
----------------------------------------------------
--BUILD SQL
-- Note: Ignoring Security for Default Members
----------------------------------------------------
declare @sql varchar(max);
set @sql = '
select
DIM.[' + @KeyColumn + '] as KeyValue,
DIM.[' + @AttColumn + '] as AttributeValue
from ' + @DimensionExp + ' DIM
where
MemberGUID = ''' + CAST(@DefaultMemberGUID as nvarchar(64)) + '''
';
print @sql;
exec (@sql);
GO
---------------------------------------------
-- dbo.procScoreHierarchyPathGetQuery
create proc dbo.procScoreHierarchyPathGetQuery
@hpath nvarchar(max),
@isWhereOnly bit,
@sql nvarchar(max) OUT
as
select
@sql = dbo.straggr(a.SQLColumnName + ' = ''' + lvls.val + '''', ' AND ', '')
from
viewScoreHierarchy h
inner join ScoreDimension d on d.DimensionGUID = h.DimensionGUID
inner join viewScoreAttribute a on a.AttributeGUID = h.AttributeGUID
inner join (select parts.pos - 2 as pos, parts.val from dbo.ConvertCSValuesToTable(@hpath, '|') parts where parts.pos > 2) lvls on lvls.pos = h.SortOrder
where
d.SQLTableAlias in(select hn.val from dbo.ConvertCSValuesToTable(@hpath, '|') hn where hn.pos = 1)
and h.PathAlias in(select hn.val from dbo.ConvertCSValuesToTable(@hpath, '|') hn where hn.pos = 2)
declare @filter nvarchar(max)
select
@filter = max(a.SQLColumnName + ' = ''' + al.FilterString + '''')
from
ScoreHierarchy h
inner join ScoreHierarchyAttributeLink al on al.HierarchyGUID = h.HierarchyGUID
inner join ScoreDimension d on d.DimensionGUID = h.DimensionGUID
inner join viewScoreAttribute a on a.AttributeGUID = al.FilterAttributeGUID
where
d.SQLTableAlias in(select hn.val from dbo.ConvertCSValuesToTable(@hpath, '|') hn where hn.pos = 1)
and h.PathAlias in(select hn.val from dbo.ConvertCSValuesToTable(@hpath, '|') hn where hn.pos = 2)
and al.IsAttributeFiltered = 1
if (@filter is not null and @filter != '') begin
set @sql = @sql + ' AND ' + @filter
end
if (@isWhereOnly = 0) begin
select
@sql = 'select ' + a.SQLColumnName + ' from ' + d.SQLSchemaName + '.' + d.SQLObjectName + ' where ' + @sql
from
ScoreDimension d
inner join viewScoreAttribute a on a.AttributeGUID = d.DefaultKeyGUID
where
d.SQLTableAlias in(select hn.val from dbo.ConvertCSValuesToTable(@hpath, '|') hn where hn.pos = 1)
end
GO
---------------------------------------------
-- dbo.procScoreLoadPlanGUIDForSecuredLootID
CREATE PROCEDURE [dbo].[procScoreLoadPlanGUIDForSecuredLootID](
@SecuredID nvarchar(128)
)
AS
BEGIN
select coalesce((select top 1 PlanGUID from XPlan PLN where PLN.CachedLootID = @SecuredID), dbo.ZeroGUID())
END
GO
---------------------------------------------
-- dbo.procScoreLoadSecuredConfigIDForPlan
CREATE PROC [dbo].[procScoreLoadSecuredConfigIDForPlan](
@PlanGUID uniqueidentifier
)
AS
select CachedLootID from XPlan where PlanGUID = @PlanGUID
--declare @SQLSchemaName nvarchar(128);
--declare @SQLObjectName nvarchar(max);
--declare @AttributeColumn nvarchar(4000);
--declare @Prefix nvarchar(128);
--select top 1
-- @SQLSchemaName = DIM.SQLSchemaName,
-- @SQLObjectName = DIM.SQLObjectName,
-- @AttributeColumn = coalesce(OATTR.SQLColumnName, ATTR.SQLColumnName),
-- @Prefix = coalesce(OATTR.SecuredLootGroupPrefix, ATTR.SecuredLootGroupPrefix)
--from XPLan PLN
-- inner join PlanType PLNTYPE on PLN.PlanTypeGUID = PLNTYPE.PlanTypeGUID
-- inner join ScoreDimension DIM on DIM.DimensionGUID = PLNTYPE.DimensionGUID
-- inner join ScoreAttribute ATTR on ATTR.DimensionGUID = DIM.DimensionGUID
-- left join ScoreAttribute OATTR on OATTR.DimensionGUID = DIM.DimensionGUID
-- and OATTR.IsSecuredLootConfigID = 1
--where ATTR.IsSecuredLootID = 1
-- and PLN.PlanGUID = @PlanGUID
--declare @sql varchar(max);
--if(@Prefix = '') begin
-- set @sql = '
-- select cast(' + @AttributeColumn + ' as nvarchar) as LootID from ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + '
-- where MemberGUID = ''' + cast(@PlanGUID as nvarchar(36)) + '''
-- ';
--end else begin
-- set @sql = '
-- select ''' + @Prefix + ''' + ''|'' + cast(' + @AttributeColumn + ' as nvarchar) as LootID from ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + '
-- where MemberGUID = ''' + cast(@PlanGUID as nvarchar(36)) + '''
-- ';
--end
--exec (@sql);
GO
---------------------------------------------
-- dbo.procScoreLoadSecuredLootIDForPlan
CREATE PROC [dbo].[procScoreLoadSecuredLootIDForPlan] (
@PlanGUID uniqueidentifier
)
AS
select CachedLootID from XPlan where PlanGUID = @PlanGUID
--declare @SQLSchemaName nvarchar(128);
--declare @SQLObjectName nvarchar(max);
--declare @AttributeColumn nvarchar(4000);
--declare @Prefix nvarchar(128);
--select top 1
-- @SQLSchemaName = DIM.SQLSchemaName,
-- @SQLObjectName = DIM.SQLObjectName,
-- @AttributeColumn = ATTR.SQLColumnName,
-- @Prefix = ATTR.SecuredLootGroupPrefix
--from XPLan PLN
-- inner join PlanType PLNTYPE on PLN.PlanTypeGUID = PLNTYPE.PlanTypeGUID
-- inner join ScoreDimension DIM on DIM.DimensionGUID = PLNTYPE.DimensionGUID
-- inner join ScoreDimensionGroup DIMG on DIMG.DimensionGUID = DIM.DimensionGUID
-- inner join ScoreAttribute ATTR on ATTR.DimensionGroupGUID = DIMG.DimensionGroupGUID
--where PLN.PlanGUID = @PlanGUID and ATTR.IsSecuredLootID = 1
--declare @sql varchar(max);
--if(@Prefix = '') begin
-- set @sql = '
-- select cast(' + @AttributeColumn + ' as nvarchar) as LootID from ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + '
-- where MemberGUID = ''' + CAST(@PlanGUID as varchar(max)) + '''
-- ';
--end else begin
-- set @sql = '
-- select ''' + @Prefix + ''' + ''|'' + cast(' + @AttributeColumn + ' as nvarchar) as LootID from ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + '
-- where MemberGUID = ''' + CAST(@PlanGUID as varchar(max)) + '''
-- ';
--end
--print @sql;
--exec (@sql);
GO
---------------------------------------------
-- dbo.procScoreLoadSecuredLootIDForPlanShortcut
CREATE PROC [dbo].[procScoreLoadSecuredLootIDForPlanShortcut](
@EntityGUID UNIQUEIDENTIFIER
)
AS
--check xplan first because viewWFEntity filters out deleted plans
if (exists(select 1 from dbo.XPlan where PlanGUID = @EntityGUID)) begin
SELECT TOP 1 CachedLootID
FROM [dbo].[XPlan]
WHERE PlanGUID = @EntityGUID
end else begin
SELECT TOP 1 CachedLootID
FROM [dbo].[viewWFEntity]
WHERE EntityGUID = @EntityGUID
end
GO
---------------------------------------------
-- dbo.procScoreLoadSecuredLootIDForPlansShortcut
CREATE PROC [dbo].[procScoreLoadSecuredLootIDForPlansShortcut](
@PlanGUIDListCSV varchar(max)
)
AS
select
PLN.PlanGUID as MemberGUID,
PLN.CachedLootID as LootID
from
XPLan PLN
where
PLN.PlanGUID in (select * from dbo.CSVGuidsToTable (@PlanGUIDListCSV))
GO
---------------------------------------------
-- dbo.procScoreMeasureSchemaUpdate
create proc [dbo].[procScoreMeasureSchemaUpdate]
@datatableguid uniqueidentifier = '00000000-0000-0000-0000-000000000000'
as
update
obj
set
obj.ColumnID = objschema.ColumnID,
obj.ColumnTypeValue = objschema.ColumnTypeValue,
obj.ColumnName = objschema.ColumnName,
obj.ComputedValueDefinition = objschema.ComputedValueDefinition,
obj.DefaultValueDefinition = objschema.DefaultValueDefinition,
obj.ForeignKeyColumn = objschema.ForeignKeyColumn,
obj.ForeignKeyOnDelete = objschema.ForeignKeyOnDelete,
obj.ForeignKeySchema = objschema.ForeignKeySchema,
obj.ForeignKeyTable = objschema.ForeignKeyTable,
obj.IdentityIncrement = objschema.IdentityIncrement,
obj.IdentitySeed = objschema.IdentitySeed,
obj.IsComputed = objschema.IsComputed,
obj.IsForeignKeyed = objschema.IsForeignKeyed,
obj.IsIdentity = objschema.IsIdentity,
obj.IsNullable = objschema.IsNullable,
obj.IsPartOfPrimaryKey = objschema.IsPartOfPrimaryKey,
obj.IsPartOfUniqueIndex = objschema.IsPartOfUniqueIndex,
obj.IsPrimaryKey = objschema.IsPrimaryKey,
obj.IsUniqueIndex = objschema.IsUniqueIndex,
obj.MaxLength = objschema.MaxLength,
obj.ObjectID = objschema.ObjectID,
obj.ObjectName = objschema.ObjectName,
obj.ObjectType = objschema.ObjectType,
obj.Precision = objschema.Precision,
obj.Scale = objschema.Scale,
obj.SchemaName = objschema.SchemaName
from
ScoreMeasure obj
inner join viewScoreMeasureSchemaInfo objschema on obj.MeasureGUID = objschema.MeasureGUID
where
@datatableguid in (obj.datatableguid, dbo.zeroguid())
and (
obj.ColumnID <> objschema.ColumnID or
obj.ColumnTypeValue <> objschema.ColumnTypeValue or
obj.ColumnName <> objschema.ColumnName or
obj.ComputedValueDefinition <> objschema.ComputedValueDefinition or
obj.DefaultValueDefinition <> objschema.DefaultValueDefinition or
obj.ForeignKeyColumn <> objschema.ForeignKeyColumn or
obj.ForeignKeyOnDelete <> objschema.ForeignKeyOnDelete or
obj.ForeignKeySchema <> objschema.ForeignKeySchema or
obj.ForeignKeyTable <> objschema.ForeignKeyTable or
obj.IdentityIncrement <> objschema.IdentityIncrement or
obj.IdentitySeed <> objschema.IdentitySeed or
obj.IsComputed <> objschema.IsComputed or
obj.IsForeignKeyed <> objschema.IsForeignKeyed or
obj.IsIdentity <> objschema.IsIdentity or
obj.IsNullable <> objschema.IsNullable or
obj.IsPartOfPrimaryKey <> objschema.IsPartOfPrimaryKey or
obj.IsPartOfUniqueIndex <> objschema.IsPartOfUniqueIndex or
obj.IsPrimaryKey <> objschema.IsPrimaryKey or
obj.IsUniqueIndex <> objschema.IsUniqueIndex or
obj.MaxLength <> objschema.MaxLength or
obj.ObjectID <> objschema.ObjectID or
obj.ObjectName <> objschema.ObjectName or
obj.ObjectType <> objschema.ObjectType or
obj.Precision <> objschema.Precision or
obj.Scale <> objschema.Scale or
obj.SchemaName <> objschema.SchemaName
)
GO
---------------------------------------------
-- dbo.procScoreRebuildDimensionMemberView
--#notran#
CREATE proc [dbo].[procScoreRebuildDimensionMemberView]
@isDebugOnly bit = 0
as
exec dbo.procRefreshViews --broken views will not be included in these debug views
declare @viewSQL varchar(max)
set @viewSQL = ''
declare @dropSql varchar(max)
set @dropSql ='
if dbo.ViewExists(''data'',''viewScoreDimensionMember'') = 1 begin
drop view data.viewScoreDimensionMember
end
if dbo.ViewExists(''data'',''viewScoreFillInDetail'') = 1 begin
drop view data.viewScoreFillInDetail
end
if dbo.ViewExists(''data'',''viewScoreFillInTemplateItemDetail'') = 1 begin
drop view data.viewScoreFillInTemplateItemDetail
end
'
if (@isDebugOnly = 0) begin exec (@dropsql) end else begin exec dbo.procPrintLongText @dropsql end
--secured system sections
set @viewSQL = @viewSQL +'
create view data.viewScoreDimensionMember as
'
--secured dimensions
declare crsScoreDim CURSOR FOR
select '
SELECT
cast(''' + cast(SD.DimensionGUID as varchar(36)) + ''' as uniqueidentifier) as DimensionGUID,
''' + SD.FriendlyName + ''' as DimensionName,
MemberGUID,
cast([' + sadlk.sqlcolumnname + '] as varchar(max)) as MemberName,
cast([' + sadk.sqlcolumnname + '] as varchar(max)) as DefaultKey,
''' + isnull(salid.securedlootgroupprefix,'Unsecure') + '|'' + cast([' + isnull(salid.sqlcolumnname, sadk.sqlcolumnname) + '] as varchar(max)) as LootID
FROM [' + sd.sqlschemaname + '].[' + sd.sqlobjectname + ']'
from
ScoreDimension SD
inner join viewSysColumns col on sd.sqlschemaname = col.schemaname and sd.sqlobjectname = col.objectname and col.columnname = 'memberguid'
inner join viewScoreAttributeCore30 SADLK on sd.dimensionguid = sadlk.dimensionguid and sd.defaultlookupkeyguid = sadlk.attributeguid
inner join viewSysColumns SADLKcol on sd.sqlschemaname = SADLKcol.schemaname and sd.sqlobjectname = SADLKcol.objectname and SADLKcol.columnname = sadlk.sqlcolumnname
inner join viewScoreAttributeCore30 SADK on sd.dimensionguid = sadk.dimensionguid and sd.defaultkeyguid = SADK.attributeguid
inner join viewSysColumns sadkcol on sd.sqlschemaname = sadkcol.schemaname and sd.sqlobjectname = sadkcol.objectname and sadkcol.columnname = sadk.sqlcolumnname
left join viewScoreAttributeCore30 SALID on sd.dimensionguid = salid.dimensionguid and salid.issecuredlootid = 1
where
(dbo.viewexists(sd.sqlschemaname,sd.sqlobjectname) = 1
or dbo.tableexists(sd.sqlschemaname,sd.sqlobjectname) = 1)
and sd.sqlschemaname + '.' + sd.sqlobjectname not in(select replace(replace(brokenviewname, '[', ''), ']', '') from dbo.RefreshViewsLog)
open crsScoreDim;
declare @dimsql varchar(max)
declare @cnt int
set @cnt = 0
FETCH NEXT FROM crsScoreDim into @dimsql
WHILE (@@FETCH_STATUS = 0) BEGIN
if @cnt > 0 begin
set @viewSQL = @viewSQL + '
UNION ALL
'
end
set @cnt = @cnt + 1
set @viewSQL = @viewSQL + '
' + @dimsql
FETCH NEXT FROM crsScoreDim into @dimsql
end
close crsscoredim
deallocate crsscoredim
if @cnt > 0 begin
if (@isDebugOnly = 0) begin exec (@viewsql) end else begin exec dbo.procPrintLongText @viewsql end
set @viewSQL = '
create view data.[viewScoreFillInTemplateItemDetail] as
select
fit.*,
secmem.DimensionName as SectionDimensionName,
secmem.MemberName as SectionMemberName,
conmem.DimensionName as ConstantDimensionName,
conmem.MemberName as ConstantMemberName
from
ScoreFillInTemplateItem fit
left join data.viewScoreDimensionMember secmem on fit.PlaceholderSectionMemberGUID = secmem.MemberGUID
left join data.viewScoreDimensionMember conmem on fit.ConstantMemberGUID = conmem.MemberGUID'
if (@isDebugOnly = 0) begin exec (@viewsql) end else begin exec dbo.procPrintLongText @viewsql end
set @viewSQL = '
create view [data].[viewScoreFillinDetail] as
select
fi.ModelGUID,
sdmm.MemberName as ModelName,
fi.PlaceholderSectionMemberGUID,
sdmph.DimensionName as PlaceholderSectionDimensionName,
sdmph.DefaultKey as PlaceholderSectionDefaultKey,
sdmph.LootID as PlaceholderSectionLootID,
sdmph.MemberName as PlaceholderSectionMemberName,
fi.PlaceholderIndex,
fi.FillinMemberGUID,
sdmfi.DimensionName as FillInDimensionName,
sdmfi.DefaultKey as FillInDefaultKey,
sdmfi.LootID as FillInLootID,
sdmfi.MemberName as FillInMemberName
from
ScoreFillin fi
left join data.viewScoreDimensionMember sdmm on fi.ModelGUID = sdmm.MemberGUID
left join data.viewScoreDimensionMember sdmph on fi.PlaceholderSectionMemberGUID = sdmph.MemberGUID
left join data.viewScoreDimensionMember sdmfi on fi.FillinMemberGUID = sdmfi.MemberGUID
'
if (@isDebugOnly = 0) begin exec (@viewsql) end else begin exec dbo.procPrintLongText @viewsql end
end
GO
---------------------------------------------
-- dbo.procScoreRemoveDeletedAll
CREATE proc procScoreRemoveDeletedAll
as
exec [procScoreRunForManyStructures] 'delete from [{schema}].[{object}] where isdeleted = 1', 'where iswrittentodb = 1', 1
GO
---------------------------------------------
-- dbo.procScoreRemoveLootRefreshTrigger
CREATE proc [dbo].[procScoreRemoveLootRefreshTrigger](
@aDimensionGUID uniqueidentifier
)
AS
--get schema and object
declare @Schema varchar(128);
declare @Object varchar(128);
select @Schema = Sqlschemaname, @Object = SQLObjectName from ScoreDimension where DimensionGUID = @aDimensionGUID;
declare @triggerName varchar(max);
select @triggerName = (select [dbo].GetScoreLootRefreshTriggerName(@aDimensionGUID));
if ([dbo].[IsView](@Schema, @Object) = 1)
BEGIN
print 'Removing Triggers from Underlying Tables';
declare @TableSchema varchar(128);
declare @TableName varchar(128);
declare @TableTriggerName varchar(128);
DECLARE TableCursor CURSOR
FOR select * from [dbo].GetViewUnderlyingTables(@Schema, @Object)
OPEN TableCursor;
Fetch Next from TableCursor INTO @TableName, @TableSchema;
WHILE (@@FETCH_STATUS = 0)
BEGIN
set @TableTriggerName = Substring((select [dbo].GetScoreLootRefreshTriggerName(@aDimensionGUID)) + '_' + @TableName, 0, 128);
if ([dbo].IsTriggerExist(@TableTriggerName) = 1)
BEGIN
declare @tablesql varchar(max);
set @tablesql = '
DROP TRIGGER [' + @TableSchema + '].[' + @TableTriggerName + ']
';
print @tablesql;
exec (@tablesql);
END
Fetch Next from TableCursor INTO @TableName, @TableSchema;
END
CLOSE TableCursor;
DEALLOCATE TableCursor;
END
if ([dbo].IsTriggerExist(@triggerName)= 1)
BEGIN
declare @sql varchar(max);
set @sql = '
DROP TRIGGER [' + @Schema + '].[' + @triggerName + ']
';
print @sql;
exec (@sql);
END
ELSE
print 'Trigger does not exist.'
GO
---------------------------------------------
-- dbo.procScoreRunForManyStructures
CREATE proc [dbo].[procScoreRunForManyStructures]
@execsql varchar(max)
,@structurefiltersql varchar(max) = ''
,@exec bit = 0
,@allTogether bit = 0
as
--set @execsql = '
-- select ''{mdcname}'', count(*) from zzemfmodeldata_{mdcguidfriendly}
--'
--set @structurefiltersql = '
--where friendlyname like ''lrfp%''
--'
declare @structuresql varchar(max)
set @structuresql = '
select
datatableguid, friendlyname, sqlschemaname, sqlobjectname, sqltablealias
from
scoredatatable
' + @structurefiltersql
create table #mdcs (datatableguid uniqueidentifier, friendlyname nvarchar(64), sqlschemaname nvarchar(max), sqlobjectname nvarchar(max), sqltablealias nvarchar(max))
insert into #mdcs
exec (@structuresql)
declare @sdtguid uniqueidentifier
declare @sdtguidfriendly varchar(36)
declare @sdtname nvarchar(64)
declare @sdtnamefriendly nvarchar(64)
declare @sqlschemaname nvarchar(max)
declare @sqlobjectname nvarchar(max)
declare @sqltablealias nvarchar(max)
declare @sql varchar(max)
declare crsMDC CURSOR FOR
select *
from #mdcs
open crsMDC;
set @sql = ''
FETCH NEXT FROM crsMDC into @sdtguid, @sdtname, @sqlschemaname, @sqlobjectname, @sqltablealias
WHILE (@@FETCH_STATUS = 0)
BEGIN
set @sdtguidfriendly = replace(cast(@sdtguid as varchar(36)),'-','_')
set @sdtnamefriendly = REPLACE(@sdtname,' ','')
set @sdtnamefriendly = REPLACE(@sdtnamefriendly,'-','')
set @sdtnamefriendly = REPLACE(@sdtnamefriendly,'.','')
if @allTogether = 1 begin
set @sql = @sql + replace(replace(replace(replace(replace(replace(replace(@execsql,'{mdcguid}',cast(@sdtguid as varchar(36))), '{mdcname}',@sdtname),'{mdcguidfriendly}',@sdtguidfriendly),'{mdcnamefriendly}',@sdtnamefriendly),'{schema}',@sqlschemaname),'{object}',@sqlobjectname),'{alias}',@sqltablealias)
end else begin
set @sql = replace(replace(replace(replace(replace(replace(replace(@execsql,'{mdcguid}',cast(@sdtguid as varchar(36))), '{mdcname}',@sdtname),'{mdcguidfriendly}',@sdtguidfriendly),'{mdcnamefriendly}',@sdtnamefriendly),'{schema}',@sqlschemaname),'{object}',@sqlobjectname),'{alias}',@sqltablealias)
if @exec = 1 begin
exec(@sql)
end else begin
print @sql
end
end
FETCH NEXT FROM crsMDC into @sdtguid, @sdtname, @sqlschemaname, @sqlobjectname, @sqltablealias
END
close crsMDC;
DEALLOCATE crsMDC;
if @allTogether = 1 begin
if @exec = 1 begin
exec(@sql)
end else begin
print @sql
end
end
drop table #mdcs
GO
---------------------------------------------
-- dbo.procScoreSecurityTriggersGet
create proc procScoreSecurityTriggersGet
@dimensionSchema nvarchar(10),
@dimensionTableName nvarchar(100)
as
select
d.FriendlyName as RefreshDimension,
'exec procScoreSetDimensionSecurity30 ''' + cast(d.DimensionGUID as nvarchar(36)) + ''',0,0' as RefreshSQL,
'drop trigger fw.' + tg.Name as DropSQL
from
sys.triggers tg
inner join [dbo].[ScoreDimension] d on tg.name like '%' + replace(cast(d.DimensionGUID as nvarchar(36)),'-', '') + '%' where tg.parent_id in(select t.object_id from sys.tables t inner join sys.schemas s on s.schema_id = t.schema_id where t.name = @dimensionTableName and s.name = @dimensionSchema)
and name like '%ScoreDimension%'
GO
---------------------------------------------
-- dbo.procScoreSetDimensionSecurity30
CREATE proc [dbo].[procScoreSetDimensionSecurity30]
(
@aDimensionGUID UNIQUEIDENTIFIER,
@IsDebugOnly bit = 0,
@IsUsingVersionColumn bit = 0,
@IsOverrideSharedLoot bit = 0,
@source nvarchar(100) = 'procScoreSetDimensionSecurity30'
)
AS
BEGIN
set nocount on
IF (
(
SELECT
COUNT(*)
FROM
[dbo].[ScoreDimension] (READUNCOMMITTED)
WHERE
DimensionGUID = @aDimensionGUID AND
IsSecurityTriggersEnabled = 1
) = 0
)
BEGIN
RETURN;
END;
ELSE
BEGIN
DECLARE @json VARCHAR(1000) = '{' +
'"DimensionGuid":"' + CAST(@aDimensionGUID AS VARCHAR(50)) + '"' +
',"IsDebugOnly":' + CAST(@IsDebugOnly AS VARCHAR(1)) +
',"IsUsingVersionColumn":' + CAST(@IsUsingVersionColumn AS VARCHAR(1)) +
',"IsOverrideSharedLoot":' + CAST(@IsOverrideSharedLoot AS VARCHAR(1)) +
'}';
DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.Security.Tasks.ScoreSetDimensionSecurityTask, Strata.CS.Jazz.Biz', -- varchar(1000)
@contextXML = @json, -- varchar(1000)
@userName = 'Strata',
@statusCode = @statusCode OUTPUT,
@taskSource = @source;
END;
END;
GO
---------------------------------------------
-- dbo.procScoreSetDimensionSecurity30InsertNew
CREATE proc [dbo].[procScoreSetDimensionSecurity30InsertNew]
(
@aDimensionGUID uniqueidentifier,
@aMemberGUID uniqueidentifier,
@IsDebugOnly bit = 0,
@IsUsingVersionColumn bit = 0,
@IsOverrideSharedLoot bit = 0
)
AS
declare @sql nvarchar(max);
set @sql = '';
declare @SQLSchemaName nvarchar(128);
declare @SQLObjectName nvarchar(max);
declare @IsSecured bit;
declare @IsSharingSecurity bit;
select
@SQLSchemaName = SQLSchemaName,
@SQLObjectName = SQLObjectName,
@IsSecured = IsSecured,
@IsSharingSecurity = IsSharingSecurity
from ScoreDimension (readuncommitted) where DimensionGUID = @aDimensionGUID;
if (@SQLObjectName is null) begin
--declare @err nvarchar(max);
--set @err = 'Dimension with GUID ' + cast(@aDimensionGUID as nvarchar(64)) + ' does not exist. Cannot set security on dimension.';
--RAISERROR (@err,15,1);
RETURN;
end
if (@IsSecured = 0)
BEGIN
--NOT SECURED, DO NOTHING
RETURN;
END
if (@IsSharingSecurity = 1 and @IsOverrideSharedLoot = 0)
BEGIN
--LOOTS are handled from another dimension. No Need to refresh
RETURN;
END
declare @lootIDColumn nvarchar(128)
declare @lootIDExpression nvarchar(128)
select @lootIDColumn = 'START.' + SQLColumnName, @lootIDExpression = SecuredLootGroupPrefix from viewScoreAttributeCore30 where DimensionGUID = @aDimensionGUID and IsSecuredLootID = 1
if @lootIDExpression = '' begin
set @lootIDExpression = 'cast(' + @lootIDColumn + ' as nvarchar(128))'
end
else begin
set @lootIDExpression = '''' + @lootIDExpression + '|'' + cast(' + @lootIDColumn + ' as nvarchar(128))'
end
set @sql = @sql + '
IF (SELECT COUNT(*) FROM ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ' WHERE MemberGUID = ''' + CAST(@aMemberGUID as nvarchar(36)) + ''') = 0 BEGIN
RETURN
END
--DELETE FROM S3Loot WHERE LootID IN (SELECT ' + @lootIDExpression + ' FROM ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ' START) AND PermissionSetID <> (SELECT SD.PermissionSetID FROM ScoreDimension SD WHERE SD.DimensionGUID = ''' + cast(@aDimensionGUID as varchar(36)) + ''')
INSERT INTO S3Loot (LootID, PermissionSetID)
SELECT DISTINCT
' + @lootIDExpression + ', SD.PermissionSetID
FROM
' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ' START
CROSS JOIN ScoreDimension (readuncommitted) SD
WHERE
SD.DimensionGUID = ''' + cast(@aDimensionGUID as varchar(36)) + '''
AND NOT EXISTS (SELECT 1 FROM S3Loot LX WHERE LX.LootID = ' + @lootIDExpression + ')
AND START.MemberGUID = ''' + CAST(@aMemberGUID as nvarchar(36)) + '''
'
set @sql = @sql + '
CREATE TABLE #S3LootGroup (LootID nvarchar(128), LootGroupID nvarchar(128))
INSERT INTO #S3LootGroup (LootID, LootGroupID)
';
DECLARE AttributeCursor CURSOR
FOR select 'START.' + SQLColumnName as ColumnName, SecuredLootGroupPrefix
from viewScoreAttributeCore30 ATT
where ATT.IsSecuredLootGroupID = 1 and ATT.DimensionGUID = @aDimensionGUID;
declare @ColName nvarchar(max);
declare @Prefix nvarchar(128);
declare @expression nvarchar(128);
declare @expressionWithPrefix nvarchar(128);
declare @i int;
set @i = 0;
OPEN AttributeCursor;
Fetch Next from AttributeCursor INTO @ColName, @Prefix;
WHILE (@@FETCH_STATUS = 0)
BEGIN
if (@i <> 0) begin
set @sql = @sql + 'UNION ALL
';
end
set @expression = 'ltrim(rtrim(cast(' + @ColName + ' as nvarchar(128))))'
if @Prefix = '' begin
set @expressionWithPrefix = @expression
end
else begin
set @expressionWithPrefix = '''' + @Prefix + '|'' + ' + @expression
end
set @sql = @sql + '
select ' + @lootIDExpression + ', ' + @expressionWithPrefix + ' from ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ' START
WHERE
MemberGUID = ''' + CAST(@aMemberGUID as nvarchar(36)) + ''' AND
' + @expression + ' <> ''''
'
--and not exists (select 1 from dbo.S3LootGroup LOOTGROUP
-- where LOOTGROUP.LootID = ' + @lootIDExpression + '
-- and LOOTGROUP.LootGroupID = ' + @expressionWithPrefix + '
-- )
set @i = @i + 1;
Fetch Next from AttributeCursor INTO @ColName, @Prefix;
END;
CLOSE AttributeCursor;
DEALLOCATE AttributeCursor;
set @sql = @sql + '
--create index idx_lootid on #s3lootgroup(lootid)
--add valid ones
INSERT INTO S3LootGroup (LootID, LootGroupID)
SELECT DISTINCT
lootid, lootgroupid
FROM
#S3LootGroup nlg
WHERE
NOT EXISTS (
SELECT 1
FROM S3LootGroup lg
WHERE lg.lootid = nlg.LootID and lg.lootgroupid = nlg.lootgroupid
)
'
set @sql = @sql + '
DROP TABLE #S3LootGroup
'
if @IsDebugOnly = 0 begin
exec (@sql)
end else begin
print @sql
end
GO
---------------------------------------------
-- dbo.procScoreSetDimensionSecurity30Sync
CREATE proc [dbo].[procScoreSetDimensionSecurity30Sync]
(
@aDimensionGUID uniqueidentifier,
@IsDebugOnly bit = 0,
@IsUsingVersionColumn bit = 0,
@IsOverrideSharedLoot bit = 0
)
AS
set nocount on
declare @sql nvarchar(max);
set @sql = '';
declare @SQLSchemaName nvarchar(128);
declare @SQLObjectName nvarchar(max);
declare @IsSecured bit;
declare @IsSharingSecurity bit;
declare @IsSecurityReadOnly bit;
select
@SQLSchemaName = SQLSchemaName,
@SQLObjectName = SQLObjectName,
@IsSecured = IsSecured,
@IsSharingSecurity = IsSharingSecurity,
@IsSecurityReadOnly = IsSecurityReadOnly
from ScoreDimension (readuncommitted) where DimensionGUID = @aDimensionGUID;
--if security is read only, we assume another dimension is maintaining the security for us
if (@IsSecurityReadOnly = 1) begin
return
end
if (@SQLObjectName is null) begin
--declare @err nvarchar(max);
--set @err = 'Dimension with GUID ' + cast(@aDimensionGUID as nvarchar(64)) + ' does not exist. Cannot set security on dimension.';
--RAISERROR (@err,15,1);
RETURN;
end
if (@IsSecured = 0)
BEGIN
--NOT SECURED, DO NOTHING
RETURN;
END
if (@IsSharingSecurity = 1 and @IsOverrideSharedLoot = 0)
BEGIN
--LOOTS are handled from another dimension. No Need to refresh
RETURN;
END
declare @eventName varchar(64)
set @eventName = 'SBS' + CAST(@aDimensionGUID as varchar(36))
declare @lastRunVersion timestamp
select @lastRunVersion = dbo.GetEventVersion(@eventName)
declare @lootIDColumn nvarchar(128)
declare @lootIDExpression nvarchar(128)
select @lootIDColumn = 'START.' + SQLColumnName, @lootIDExpression = SecuredLootGroupPrefix from viewScoreAttributeCore30 where DimensionGUID = @aDimensionGUID and IsSecuredLootID = 1
if @lootIDExpression = '' begin
set @lootIDExpression = 'cast(' + @lootIDColumn + ' as nvarchar(128))'
end
else begin
set @lootIDExpression = '''' + @lootIDExpression + '|'' + cast(' + @lootIDColumn + ' as nvarchar(128))'
end
set @sql = @sql + '
--DELETE FROM S3Loot WHERE LootID IN (SELECT ' + @lootIDExpression + ' FROM ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ' START) AND PermissionSetID <> (SELECT SD.PermissionSetID FROM ScoreDimension SD WHERE SD.DimensionGUID = ''' + cast(@aDimensionGUID as varchar(36)) + ''')
INSERT INTO S3Loot (LootID, PermissionSetID)
SELECT DISTINCT
' + @lootIDExpression + ', SD.PermissionSetID
FROM
' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ' START
CROSS JOIN ScoreDimension SD (readuncommitted)
WHERE
SD.DimensionGUID = ''' + cast(@aDimensionGUID as varchar(36)) + '''
AND NOT EXISTS (SELECT 1 FROM S3Loot LX WHERE LX.LootID = ' + @lootIDExpression + ')
'
if @IsUsingVersionColumn = 1 begin
set @sql = @sql + ' AND START.Version > @lastRunVersion'
end
set @sql = @sql + '
CREATE TABLE #S3LootGroup (LootID nvarchar(128), LootGroupID nvarchar(128))
INSERT INTO #S3LootGroup (LootID, LootGroupID)
';
DECLARE AttributeCursor CURSOR
FOR select 'START.' + SQLColumnName as ColumnName, SecuredLootGroupPrefix
from viewScoreAttributeCore30 ATT
where ATT.IsSecuredLootGroupID = 1 and ATT.DimensionGUID = @aDimensionGUID;
declare @ColName nvarchar(max);
declare @Prefix nvarchar(128);
declare @expression nvarchar(128);
declare @expressionWithPrefix nvarchar(128);
declare @i int;
set @i = 0;
OPEN AttributeCursor;
Fetch Next from AttributeCursor INTO @ColName, @Prefix;
WHILE (@@FETCH_STATUS = 0)
BEGIN
if (@i <> 0) begin
set @sql = @sql + 'UNION ALL
';
end
set @expression = 'ltrim(rtrim(cast(' + @ColName + ' as nvarchar(128))))'
if @Prefix = '' begin
set @expressionWithPrefix = @expression
end
else begin
set @expressionWithPrefix = '''' + @Prefix + '|'' + ' + @expression
end
set @sql = @sql + '
select ' + @lootIDExpression + ', ' + @expressionWithPrefix + ' from ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ' START
WHERE
' + @expression + ' <> ''''
'
if @IsUsingVersionColumn = 1 begin
set @sql = @sql + ' AND START.Version > @lastRunVersion
'
end
--and not exists (select 1 from dbo.S3LootGroup LOOTGROUP
-- where LOOTGROUP.LootID = ' + @lootIDExpression + '
-- and LOOTGROUP.LootGroupID = ' + @expressionWithPrefix + '
-- )
set @i = @i + 1;
Fetch Next from AttributeCursor INTO @ColName, @Prefix;
END;
CLOSE AttributeCursor;
DEALLOCATE AttributeCursor;
set @sql = @sql + '
create index idx_lootid on #s3lootgroup(lootid)
--delete invalid ones
while (1 = 1) begin
DELETE top(1000) lg FROM S3LootGroup lg WHERE
lg.LootID IN (select nlg.LootID from #S3LootGroup nlg)
and NOT EXISTS (
SELECT 1
FROM #S3LootGroup nlg
WHERE lg.lootid = nlg.LootID and lg.lootgroupid = nlg.lootgroupid
)
if (@@rowcount = 0) break
end
--add valid ones
CREATE TABLE #S3LootGroupInsert (RowID int primary key identity, LootID nvarchar(128), LootGroupID nvarchar(128))
INSERT INTO #S3LootGroupInsert (LootID, LootGroupID)
SELECT DISTINCT
lootid, lootgroupid
FROM
#S3LootGroup nlg
WHERE
NOT EXISTS (
SELECT 1
FROM S3LootGroup lg
WHERE lg.lootid = nlg.LootID and lg.lootgroupid = nlg.lootgroupid
)
declare @inscount int = 1
declare @insmax int
select @insmax = max(RowID) from #S3LootGroupInsert
while(@inscount <= @insmax) begin
INSERT INTO S3LootGroup (LootID, LootGroupID)
select nlg.LootID, nlg.LootGroupID from #S3LootGroupInsert nlg where nlg.RowID >= @inscount and nlg.RowID < @inscount + 1000
and NOT EXISTS (
SELECT 1
FROM S3LootGroup lg
WHERE lg.lootid = nlg.LootID and lg.lootgroupid = nlg.lootgroupid
)
set @inscount = @inscount + 1000
end
'
set @sql = @sql + '
DROP TABLE #S3LootGroup
DROP TABLE #S3LootGroupInsert
'
if @IsDebugOnly = 0 begin
--exec (@sql);
exec sp_executesql @sql,N'@lastRunVersion timestamp', @lastRunVersion = @lastRunVersion--
exec procEventupdate @eventName
end else begin
print @sql
end
GO
---------------------------------------------
-- dbo.procScoreSetDimensionSecurity30UpdateSingle
CREATE proc [dbo].[procScoreSetDimensionSecurity30UpdateSingle]
(
@aDimensionGUID uniqueidentifier,
@aMemberGUID uniqueidentifier,
@IsDebugOnly bit = 0,
@IsUsingVersionColumn bit = 0,
@IsOverrideSharedLoot bit = 0
)
AS
set nocount on
declare @sql nvarchar(max);
set @sql = '';
declare @SQLSchemaName nvarchar(128);
declare @SQLObjectName nvarchar(max);
declare @IsSecured bit;
declare @IsSharingSecurity bit;
declare @IsSecurityReadOnly bit;
select
@SQLSchemaName = SQLSchemaName,
@SQLObjectName = SQLObjectName,
@IsSecured = IsSecured,
@IsSharingSecurity = IsSharingSecurity,
@IsSecurityReadOnly = IsSecurityReadOnly
from ScoreDimension (readuncommitted) where DimensionGUID = @aDimensionGUID;
--if security is read only, we assume another dimension is maintaining the security for us
if (@IsSecurityReadOnly = 1) begin
return
end
if (@SQLObjectName is null) begin
--declare @err nvarchar(max);
--set @err = 'Dimension with GUID ' + cast(@aDimensionGUID as nvarchar(64)) + ' does not exist. Cannot set security on dimension.';
--RAISERROR (@err,15,1);
RETURN;
end
if (@IsSecured = 0)
BEGIN
--NOT SECURED, DO NOTHING
RETURN;
END
if (@IsSharingSecurity = 1 and @IsOverrideSharedLoot = 0)
BEGIN
--LOOTS are handled from another dimension. No Need to refresh
RETURN;
END
declare @lootIDColumn nvarchar(128)
declare @lootIDExpression nvarchar(128)
select @lootIDColumn = 'START.' + SQLColumnName, @lootIDExpression = SecuredLootGroupPrefix from viewScoreAttributeCore30 where DimensionGUID = @aDimensionGUID and IsSecuredLootID = 1
if @lootIDExpression = '' begin
set @lootIDExpression = 'cast(' + @lootIDColumn + ' as nvarchar(128))'
end
else begin
set @lootIDExpression = '''' + @lootIDExpression + '|'' + cast(' + @lootIDColumn + ' as nvarchar(128))'
end
set @sql = @sql + '
INSERT INTO S3Loot (LootID, PermissionSetID)
SELECT DISTINCT
' + @lootIDExpression + ', SD.PermissionSetID
FROM
' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ' START
CROSS JOIN ScoreDimension SD (readuncommitted)
WHERE
SD.DimensionGUID = ''' + cast(@aDimensionGUID as varchar(36)) + '''
AND START.MemberGUID = ''' + cast(@aMemberGUID as varchar(36)) + '''
AND NOT EXISTS (SELECT 1 FROM S3Loot LX WHERE LX.LootID = ' + @lootIDExpression + ')
'
set @sql = @sql + '
CREATE TABLE #S3LootGroup (LootID nvarchar(128), LootGroupID nvarchar(128))
INSERT INTO #S3LootGroup (LootID, LootGroupID)
';
DECLARE AttributeCursor CURSOR
FOR select 'START.' + SQLColumnName as ColumnName, SecuredLootGroupPrefix
from viewScoreAttributeCore30 ATT
where ATT.IsSecuredLootGroupID = 1 and ATT.DimensionGUID = @aDimensionGUID;
declare @ColName nvarchar(max);
declare @Prefix nvarchar(128);
declare @expression nvarchar(128);
declare @expressionWithPrefix nvarchar(128);
declare @i int;
set @i = 0;
OPEN AttributeCursor;
Fetch Next from AttributeCursor INTO @ColName, @Prefix;
WHILE (@@FETCH_STATUS = 0)
BEGIN
if (@i <> 0) begin
set @sql = @sql + 'UNION ALL
';
end
set @expression = 'ltrim(rtrim(cast(' + @ColName + ' as nvarchar(128))))'
if @Prefix = '' begin
set @expressionWithPrefix = @expression
end
else begin
set @expressionWithPrefix = '''' + @Prefix + '|'' + ' + @expression
end
set @sql = @sql + '
select ' + @lootIDExpression + ', ' + @expressionWithPrefix + ' from ' + (select [dbo].[GetSQLTableExpression](@SQLSchemaName, @SQLObjectName)) + ' START
WHERE
' + @expression + ' <> ''''
AND START.MemberGUID = ''' + cast(@aMemberGUID as varchar(36)) + '''
'
--and not exists (select 1 from dbo.S3LootGroup LOOTGROUP
-- where LOOTGROUP.LootID = ' + @lootIDExpression + '
-- and LOOTGROUP.LootGroupID = ' + @expressionWithPrefix + '
-- )
set @i = @i + 1;
Fetch Next from AttributeCursor INTO @ColName, @Prefix;
END;
CLOSE AttributeCursor;
DEALLOCATE AttributeCursor;
set @sql = @sql + '
create index idx_lootid on #s3lootgroup(lootid)
--delete invalid ones
while (1 = 1) begin
DELETE top(1000) lg FROM S3LootGroup lg WHERE
lg.LootID IN (select nlg.LootID from #S3LootGroup nlg)
and NOT EXISTS (
SELECT 1
FROM #S3LootGroup nlg
WHERE lg.lootid = nlg.LootID and lg.lootgroupid = nlg.lootgroupid
)
if (@@rowcount = 0) break
end
--add valid ones
CREATE TABLE #S3LootGroupInsert (RowID int primary key identity, LootID nvarchar(128), LootGroupID nvarchar(128))
INSERT INTO #S3LootGroupInsert (LootID, LootGroupID)
SELECT DISTINCT
lootid, lootgroupid
FROM
#S3LootGroup nlg
WHERE
NOT EXISTS (
SELECT 1
FROM S3LootGroup lg
WHERE lg.lootid = nlg.LootID and lg.lootgroupid = nlg.lootgroupid
)
declare @inscount int = 1
declare @insmax int
select @insmax = max(RowID) from #S3LootGroupInsert
while(@inscount <= @insmax) begin
INSERT INTO S3LootGroup (LootID, LootGroupID)
select LootID, LootGroupID from #S3LootGroupInsert where RowID >= @inscount and RowID < @inscount + 1000
set @inscount = @inscount + 1000
end
'
set @sql = @sql + '
DROP TABLE #S3LootGroup
DROP TABLE #S3LootGroupInsert
'
if @IsDebugOnly = 0 begin
exec (@sql)
end else begin
print @sql
end
GO
---------------------------------------------
-- dbo.procScoreSyncDimensionGroups
CREATE proc [dbo].[procScoreSyncDimensionGroups] (
@DimensionGUID uniqueidentifier,
@IsDebugOnly bit = 0
)
AS
BEGIN
declare @PrimarySchema sysname;
declare @PrimaryObject sysname;
select
@PrimaryObject = DG.ObjectName,
@PrimarySchema = DG.SchemaName
from ScoreDimension D
inner join ScoreDimensionGroup DG on DG.DimensionGUID = D.DimensionGUID
where DG.DimensionGroupGUID = D.PrimaryGroupGUID and D.DimensionGUID = @DimensionGUID;
if (@PrimarySchema is null or @PrimaryObject is null)
begin
print 'Unable to find Primary Group';
return;
end
--cursor over secondaries
declare @GroupSchema sysname;
declare @GroupObject sysname;
declare crsCursor CURSOR LOCAL FAST_FORWARD FOR
select
DG.SchemaName,
DG.ObjectName
from ScoreDimension D
inner join ScoreDimensionGroup DG on DG.DimensionGUID = D.DimensionGUID
where DG.DimensionGroupGUID <> D.PrimaryGroupGUID and D.DimensionGUID = @DimensionGUID
and dbo.IsView(DG.SchemaName,DG.ObjectName) = 0; -- don't sync view-backed dimension groups
open crsCursor;
FETCH NEXT FROM crsCursor into @GroupSchema, @GroupObject
WHILE (@@FETCH_STATUS = 0)
BEGIN
declare @sql varchar(max);
set @sql = '
INSERT INTO [' + @GroupSchema + '].[' + @GroupObject + '] ([MemberGUID])
select P.[MemberGUID] from [' + @PrimarySchema + '].[' + @PrimaryObject + '] P
left join [' + @GroupSchema + '].[' + @GroupObject + '] S on S.[MemberGUID] = P.[MemberGUID]
where S.[MemberGUID] is null;
DELETE FROM [' + @GroupSchema + '].[' + @GroupObject + ']
where [MemberGUID] not in (Select [MemberGUID] from [' + @PrimarySchema + '].[' + @PrimaryObject + ']);
';
if (@IsDebugOnly = 1) begin
print @sql;
end
else begin
exec (@sql);
end
FETCH NEXT FROM crsCursor into @GroupSchema, @GroupObject
END
close crsCursor;
DEALLOCATE crsCursor;
END
GO
---------------------------------------------
-- dbo.procScoreTruncateDimension
CREATE proc [dbo].[procScoreTruncateDimension] (
@DimensionGUID uniqueidentifier,
@IsDebugOnly bit = 0
)
AS
BEGIN
declare @sql varchar(max);
set @sql = '';
declare @schema sysname;
declare @object sysname;
declare crsCursor CURSOR LOCAL FAST_FORWARD FOR
select G.SchemaName, G.ObjectName from ScoreDimension D
inner join ScoreDimensionGroup G on G.DimensionGUID = D.DimensionGUID
where D.DimensionGUID = @DimensionGUID
open crsCursor;
set @sql = 'BEGIN TRANSACTION TRUNCATE_DIMENSION;
';
FETCH NEXT FROM crsCursor into @schema, @object
WHILE (@@FETCH_STATUS = 0)
BEGIN
set @sql = @sql + 'TRUNCATE TABLE [' + @schema + '].[' + @object + '];
';
FETCH NEXT FROM crsCursor into @schema, @object
END
close crsCursor;
DEALLOCATE crsCursor;
set @sql = @sql + 'COMMIT TRANSACTION TRUNCATE_DIMENSION;';
if (@IsDebugOnly = 1) begin
print @sql;
end
else begin
exec (@sql);
end
END
GO
---------------------------------------------
-- dbo.procScoreUpdateLootPermissionSets
CREATE procedure [dbo].[procScoreUpdateLootPermissionSets] (
@DimensionGUID uniqueidentifier
)
AS
BEGIN
if not exists (select top 1 DimensionGUID from ScoreDimension where DimensionGUID =@DimensionGUID and IsSecured=1)
begin
print 'Dimension doesn''t exist, or it isn''t secured!'
return;
end
declare @SecuredColumn nvarchar(128);
declare @SecuredPrefix nvarchar(128);
declare @SQLSchema nvarchar(128);
declare @SQLObject nvarchar(128);
declare @PSetID smallint;
select
@SQLSchema = SQLSchemaName,
@SQLObject = SQLObjectName,
@PSetID = PermissionSetID
from ScoreDimension
where DimensionGUID = @DimensionGUID
select @SecuredColumn = A.SQLColumnName,
@SecuredPrefix = A.SecuredLootGroupPrefix
from ScoreDimension D
inner join [dbo].[ScoreDimensionGroup] sdg on d.DimensionGuid = sdg.DimensionGUID
inner join ScoreAttribute A on a.DimensionGroupGuid = sdg.DimensionGroupGUID
where D.DimensionGUID = @DimensionGUID and A.IsSecuredLootID = 1
if (@SecuredColumn is null)
begin
print 'SecuredLootID column doesn''t exist!'
return;
end
declare @sql varchar(max);
set @sql = '
UPDATE LOOT
SET LOOT.PermissionSetID = ' + cast(@PSetID as nvarchar(128)) + '
FROM S3Loot LOOT
INNER JOIN ' + dbo.GetSQLTableExpression(@SQLSchema, @SQLObject) + ' DIM
ON LOOT.[LootID] = ''' + @SecuredPrefix +'|'' + cast(DIM.[' + @SecuredColumn + '] as nvarchar(128))
WHERE LOOT.PermissionSetID != ' + cast(@PSetID as nvarchar(128)) + '
';
print @sql;
exec (@sql);
END
GO
---------------------------------------------
-- dbo.procScoreValidateConfig
CREATE proc [dbo].[procScoreValidateConfig]
@commit bit = 0
as
set nocount on
declare @cnt int
declare @results as table (Result varchar(max))
declare @sql nvarchar(max)
--these should be done no matter what
exec procScoreFixMeasureAggTypes
exec procScoreAttributeSchemaUpdateAll
begin try
begin tran
--
--INVALID MODELGUID IN SCOREFILLIN
insert into @results
select distinct 'Deleted fillins for invalid modelguid: ' + isnull(CAST(modelguid as varchar(36)),'') from ScoreFillin where not modelguid in (select planguid from xplan)
delete from ScoreFillin where not modelguid in (select planguid from xplan)
----secured dimension with invalid permissionset
--insert into @results
--select 'Updated secured score dimension to have a valid permissionsetid: ' + isnull(FriendlyName,'')
--from
-- ScoreDimension
--where
-- IsSecured = 1
-- and not PermissionSetID in (select PermissionSetID from S3PermissionSet)
--update
-- ScoreDimension
--set
-- PermissionSetID = (select top 1 PermissionSetID from S3PermissionSet) --gotta pick 1!
--where
-- IsSecured = 1
-- and not PermissionSetID in (select PermissionSetID from S3PermissionSet)
--insert into @results
--select
-- 'NO AUTOFIX: Invalid dimension (' + isnull(SD.FriendlyName,'Missing') + ') attribute (' + isnull(SA.FriendlyName,'Missing') + ') for plantype (' + isnull(PT.Name,'Null') + ') '
-- + case when isnull(SA.SecuredLootGroupPrefix,'') <> 'P' then 'No P Prefix, ' else '' end
-- + case when isnull(SA.ColumnType,0) <> 56 then 'Not integer, ' else '' end
--from
-- PlanType PT
-- left join ScoreDimension SD on PT.DimensionGUID = SD.DimensionGUID
-- left join ScoreAttribute SA on SD.DimensionGUID = SA.DimensionGUID
--where
-- SA.IsSecuredLootID = 1
-- and (
-- SA.AttributeGUID is null
-- or SA.SecuredLootGroupPrefix <> 'P'
-- or SA.ColumnType <> 56
-- )
insert into @results
select
'NO AUTOFIX: exec dbo.procScoreDeleteDimension ''' + isnull(cast(sd.dimensionguid as varchar(36)),'') + ''' --Dimension "' + isnull(sd.FriendlyName,'') + '" (' + isnull(cast(sd.DimensionGUID as varchar(36)),'') + ') is missing source object: [' + isnull(sd.SQLSchemaName,'') + '].[' + isnull(sd.SQLObjectName,'') + ']'
from
scoredimension sd
where not
(
dbo.viewexists(sd.sqlschemaname,sd.sqlobjectname) = 1
or dbo.tableexists(sd.sqlschemaname,sd.sqlobjectname) = 1
)
insert into @results
select
'Deleted ScoreDimensionGroup (' + sd.FriendlyName + '.' + sdg.Name + ') (and its attributes) because its sql object does not exist [' + sdg.SchemaName + '].[' + sdg.ObjectName + ']'
from
ScoreDimensionGroup sdg
inner join ScoreDimension sd on sdg.DimensionGUID = sd.DimensionGUID
where not
(
dbo.ViewExists(SchemaName, ObjectName) = 1
or dbo.TableExists(SchemaName, ObjectName) = 1
)
delete from ScoreAttribute where DimensionGroupGUID in (
select DimensionGroupGUID from ScoreDimensionGroup where not
(
dbo.ViewExists(SchemaName, ObjectName) = 1
or dbo.TableExists(SchemaName, ObjectName) = 1
)
)
delete from ScoreDimensionGroup where not
(
dbo.ViewExists(SchemaName, ObjectName) = 1
or dbo.TableExists(SchemaName, ObjectName) = 1
)
insert into @results
select
'NO AUTOFIX: exec dbo.procScoreDeleteDataTable ''' + isnull(cast(DataTableGUID as varchar(36)),'') + '''--,0,1 --DataTable "' + isnull(FriendlyName,'') + '" (' + isnull(cast(DataTableGUID as varchar(36)),'') + ') is missing source object: [' + isnull(SQLSchemaName,'') + '].[' + isnull(SQLObjectName,'') + ']'
from
ScoreDataTable dt
where not
(
dbo.viewexists(sqlschemaname,sqlobjectname) = 1
or dbo.tableexists(sqlschemaname,sqlobjectname) = 1
)
order by FriendlyName
insert into @results
select
'Deleted ScoreMeasure, MeasureGUID = ''' + isnull(cast(MeasureGUID as varchar(36)),'') + ''' -- Missing column: [' + isnull(SQLSchemaName,'') + '].[' + isnull(SQLObjectName,'') + '].[' + ISNULL(sqlcolumnname,'') + ']'
from
ScoreMeasure sm
inner join ScoreDataTable dt on sm.DataTableGUID = dt.DataTableGUID
where not
(
dbo.ColumnExists(SQLSchemaName, SQLObjectName, SQLColumnName) = 1
)
order by
SQLSchemaName, SQLObjectName, SQLColumnName
delete sm from ScoreMeasure sm
inner join ScoreDataTable dt on sm.DataTableGUID = dt.DataTableGUID
where not
(
dbo.ColumnExists(SQLSchemaName, SQLObjectName, SQLColumnName) = 1
)
insert into @results
select
'Deleted Invalid attribute (and its CompositeLinks and DataTableKeyLinks) (not in viewScoreAttributeCore30): ' + isnull(cast(sa.AttributeGUID as varchar(36)),'') + ' ' + isnull(sa.FriendlyName,'')
from
ScoreAttribute sa
where not AttributeGUID in (select AttributeGUID from viewScoreAttributeCore30)
delete from ScoreDataTableKeyLink
where not KeyGUID in (select AttributeGUID from viewScoreAttributeCore30)
delete from ScoreCompositeLink
where not Key1GUID in (select AttributeGUID from viewScoreAttributeCore30)
delete from ScoreCompositeLink
where not Key2GUID in (select AttributeGUID from viewScoreAttributeCore30)
delete from ScoreAttribute
where not AttributeGUID in (select AttributeGUID from viewScoreAttributeCore30)
insert into @results
select
'Deleted Invalid attribute (and its CompositeLinks and DataTableKeyLinks) (column does not exist): ' + cast(sa.AttributeGUID as varchar(36)) + ' ' + sa.DimensionName + ' ' + isnull(sa.FriendlyName,'')
from
viewScoreAttributeCore30 sa
where
IsColumnExist = 0
delete from ScoreDataTableKeyLink
where KeyGUID in (select AttributeGUID from viewScoreAttributeCore30 where IsColumnExist = 0)
delete from ScoreCompositeLink
where Key1GUID in (select AttributeGUID from viewScoreAttributeCore30 where IsColumnExist = 0)
delete from ScoreCompositeLink
where Key2GUID in (select AttributeGUID from viewScoreAttributeCore30 where IsColumnExist = 0)
delete from ScoreAttribute
where AttributeGUID in (select AttributeGUID from viewScoreAttributeCore30 where IsColumnExist = 0)
insert into @results
select
'Updated (' + isnull(SD.FriendlyName,'Missing') + ') to not be secured, since it has no SecuredLootID'
from
ScoreDimension sd
where
IsSecured = 1 and
not exists (
select 1 from
ScoreDimensionGroup sdg
inner join ScoreAttribute sa on sdg.DimensionGroupGUID = sa.DimensionGroupGUID
where
sd.DimensionGUID = sdg.DimensionGUID
and sa.IsSecuredLootID = 1
)
update ScoreDimension
set IsSecured = 0
where
IsSecured = 1 and
not exists (
select 1 from
ScoreDimensionGroup sdg
inner join ScoreAttribute sa on sdg.DimensionGroupGUID = sa.DimensionGroupGUID
where
ScoreDimension.DimensionGUID = sdg.DimensionGUID
and sa.IsSecuredLootID = 1
)
declare @total int
select @total = COUNT(*) from @results
if @commit = 1 begin
commit
insert into @results select 'Changes committed.'
end else begin
rollback
insert into @results select 'Changes rolled back.'
end
select *
from @results
end try
begin catch
rollback
print error_message()
print 'Rollback rolled back. No changes have been applied.'
end catch
GO
---------------------------------------------
-- dbo.procSetIdentityInsert
CREATE PROCEDURE [dbo].[procSetIdentityInsert]
(
@SQLTableExpression varchar(max),
@IsOn bit
)
AS
declare @sql varchar(max);
declare @ONorOFF varchar(8);
if (@IsOn = 1)
BEGIN
set @ONorOFF = 'ON';
END
ELSE
set @ONorOFF = 'OFF';
set @sql = 'set Identity_insert ' + @SQLTableExpression + ' ' + @ONorOFF;
print @sql;
exec (@sql)
GO
---------------------------------------------
-- dbo.procSetUserSecurityLastModifiedDate
-- =============================================
-- Author:
-- Create date: <6/24/2008>
-- Description:
-- =============================================
CREATE PROCEDURE procSetUserSecurityLastModifiedDate
-- Add the parameters for the stored procedure here
@UserGUID uniqueidentifier,
@LastModifiedDate DateTime = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Make sure date time is set
IF @LastModifiedDate IS NULL SET @LastModifiedDate = GetDate()
-- Attempt update
UPDATE UserSecurityLastModifiedDate
SET LastModifiedDate = @LastModifiedDate
WHERE UserGUID = @UserGUID
-- If userguid doesn't exist, insert
IF @@ROWCOUNT=0
INSERT INTO UserSecurityLastModifiedDate VALUES (@UserGUID, @LastModifiedDate)
END
GO
---------------------------------------------
-- dbo.procShowGUIDsMB
CREATE PROC procShowGUIDsMB AS
CREATE table #space (name varchar(100), rows int, reserved varchar(50),
data varchar(50), index_size varchar(50), unused varchar(50))
exec sp_MSforeachtable 'insert into #space exec sp_spaceused ''?'';'
--
--SELECT
-- name,
-- rows,
-- cast(replace(reserved, ' KB', '') as int) / 1000 as reserved,
-- cast(replace(data, ' KB', '') as int) / 1000 as data,
-- cast(replace(index_size, ' KB', '') as int) / 1000 as index_size,
-- cast(replace(unused, ' KB', '') as int) / 1000 as unused
-- from #space order by reserved DESC
DECLARE @val FLOAT
SELECT
--sysobjects.name, syscolumns.name, #space.rows,
@val = sum(#space.rows * 16.0) / 1000000.0
FROM sysobjects
INNER JOIN syscolumns ON sysobjects.id = syscolumns.id
INNER JOIN #space ON #space.name = sysobjects.name
WHERE sysobjects.xtype='U' AND syscolumns.xtype = 36
PRINT 'All: ' + cast(@val AS varchar(max)) + ' MB'
SELECT
--sysobjects.name, syscolumns.name, #space.rows,
@val = sum(#space.rows * 16.0) / 1000000.0
FROM sysobjects
INNER JOIN syscolumns ON sysobjects.id = syscolumns.id
INNER JOIN #space ON #space.name = sysobjects.name
WHERE sysobjects.xtype='U' AND syscolumns.xtype = 36 AND sysobjects.name LIKE 'zz%'
PRINT 'zzTables: ' + cast(@val AS varchar(max)) + ' MB'
DROP TABLE #space
GO
---------------------------------------------
-- dbo.procShowLargestModels
CREATE PROC [dbo].[procShowLargestModels] AS
SET NOCOUNT ON;
DECLARE @zzMDCGUID uniqueidentifier
DECLARE @mdcName nvarchar(max)
DECLARE @zzMDCtablename nvarchar(36)
-- DECLARE @zzDIMcursor nvarchar(256)
-- DECLARE @zzDIMcolumnname nvarchar(256)
DECLARE @modelTemplateMappingTableName nvarchar(256)
DECLARE @modelDataTableName nvarchar(256)
-- DECLARE @dimensionName as nvarchar(256)
-- DECLARE @dimensionGUID as uniqueidentifier
-- DECLARE @fixSQL as nvarchar(max)
DECLARE @sql varchar(max)
CREATE TABLE #Biggest (IsTemplate BIT , name varchar(max), rows int)
DECLARE zztable CURSOR LOCAL FAST_FORWARD
FOR SELECT NAME, MODELDATACONFIGGUID FROM EMFModelDataConfig
OPEN zztable
FETCH NEXT FROM zztable INTO @mdcName, @zzMDCGUID
WHILE @@FETCH_STATUS = 0
BEGIN
--SET @zztable_query = 'ALTER TABLE ' + @zztable_name + ' ADD [MAPPINGTYPE] int NOT NULL Default(0) WITH VALUES'
--EXECUTE sp_executesql @zztable_query
SET @zzMDCtablename = REPLACE(@zzMDCGUID,'-','_')
SET @modelTemplateMappingTableName = 'zzEMFModelTemplateMapping_' + @zzMDCtablename
if (select count(*) from sysobjects where xtype='u' and name like @modelTemplateMappingTableName) <> 0 BEGIN
SET @sql = 'DECLARE @name varchar(max); DECLARE @cnt int; SELECT TOP 1 @name = MT.NAME, @cnt = COUNT(*) FROM ' + @modelTemplateMappingTableName + ' MAP INNER JOIN EMFMODELTEMPLATE MT ON MT.MODELTEMPLATEGUID = MAP.MODELTEMPLATEGUID GROUP BY MT.NAME ORDER BY COUNT(*) DESC
; INSERT INTO #Biggest (IsTemplate, name, Rows) VALUES (1, @name, @cnt)'
EXEC (@sql)
END
-- SET @modelDataTableName = 'zzEMFModelData_' + @zzMDCtablename
-- if (select count(*) from sysobjects where xtype='u' and name like @modelDataTableName) = 0
-- PRINT @modelDataTableName + ' table is not present'
-- else begin
-- --exec procEnsureColumnInTable @modelDataTableName ,'MODELGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
-- exec procEnsureDimensionColumnsInTable @modelDataTableName, @zzMDCGUID, @DebugMode, 0
-- exec procEnsureColumnInTable @modelDataTableName ,'MEASUREGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
-- exec procEnsureColumnInTable @modelDataTableName ,'VALUE', 'float', '0', @DebugMode
-- exec procEnsureColumnInTable @modelDataTableName ,'FORMULA', 'varchar(1024)', '''''', @DebugMode
-- exec procEnsureColumnInTable @modelDataTableName ,'STRINGVALUE', 'varchar(1024)', '''''', @DebugMode
-- exec procEnsureColumnInTable @modelDataTableName ,'RISKVARIABLEGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
-- exec procEnsureColumnInTable @modelDataTableName ,'HISTORYITEMGUID', 'uniqueidentifier', '''00000000-0000-0000-0000-000000000000''', @DebugMode
-- end
-- DECLARE zzdimensions CURSOR LOCAL FAST_FORWARD
-- FOR SELECT SLM.LISTGUID, SLM.NAME, UPPER('G' + REPLACE(cast(SLM.LISTGUID as varchar(36)),'-','_')) FROM dbo.EMFModelDataConfigDimensionLink MDCDL JOIN SECURELIST SLM ON MDCDL.DIMENSIONGUID=SLM.LISTGUID WHERE MDCDL.MODELDATACONFIGGUID = @zzMDCGUID
-- OPEN zzdimensions
-- FETCH NEXT FROM zzdimensions INTO @dimensionGUID, @dimensionName, @zzDIMcursor
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- SET @zzDIMcolumnname = @zzDIMcursor --+ 'GUID'
-- SET @fixSQL = 'DELETE FROM emfmodeldataconfigdimensionlink WHERE DIMENSIONGUID = ''' + cast(@dimensionGUID as varchar(36)) + ''' and MODELDATACONFIGGUID = ''' + cast(@zzMDCGUID as varchar(36)) + ''''
-- IF (SELECT count(*) FROM sysobjects JOIN syscolumns ON sysobjects.id = syscolumns.id WHERE sysobjects.xtype='U' AND (sysobjects.name like @modelDataTableName or sysobjects.name like @modelMappingTableName or sysobjects.name like @modelTemplateMappingTableName)and syscolumns.name like @zzDIMcolumnname) <> 3
-- --PRINT ' ' + @zzDIMcolumnname + ' is present'
-- --ELSE
-- PRINT @fixSQL + ' --' + cast(@zzMDCGUID as varchar(36)) + ' (' + @mdcName + ') - ' + @zzDIMcolumnname + ' (' + @dimensionName + ') is not present in both ModelData and ModelMapping'
--
--
-- FETCH NEXT FROM zzdimensions INTO @dimensionGUID, @dimensionName, @zzDIMcursor
-- END
-- CLOSE zzdimensions
-- DEALLOCATE zzdimensions
--
FETCH NEXT FROM zztable INTO @mdcName, @zzMDCGUID
END
CLOSE zztable
DEALLOCATE zztable
SELECT TOP 10 * FROM #Biggest ORDER BY rows DESC
DROP TABLE #Biggest
GO
---------------------------------------------
-- dbo.procShowTableSizes
CREATE procedure [dbo].[procShowTableSizes]
@orderByColumn varchar(max) = ''
as
create table #space (name varchar(100), rows int, reserved varchar(50),
data varchar(50), index_size varchar(50), unused varchar(50))
exec sp_MSforeachtable 'insert into #space exec sp_spaceused ''?'';'
select
name,
rows,
cast(replace(reserved, ' KB', '') as int) / 1000 as reserved,
cast(replace(data, ' KB', '') as int) / 1000 as data,
cast(replace(index_size, ' KB', '') as int) / 1000 as index_size,
cast(replace(unused, ' KB', '') as int) / 1000 as unused,
round(case when rows = 0 then 0 else cast(replace(reserved, ' KB', '') as float) / rows end,2) as KBperrow
from #space
order by reserved desc
drop table #space
GO
---------------------------------------------
-- dbo.procStrataCLRDrop
CREATE PROCEDURE dbo.procStrataCLRDrop
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
--First we need to drop all the Wrapper objects that are dependent on the Assembly which include CLR { Aggregates, Scalars, Stored Procedures, Table Value Functions & Triggers }
DECLARE @asmname NVARCHAR(1000);
DECLARE @d_sql NVARCHAR(MAX);
DECLARE @drop_type VARCHAR(100)
--****Don't forget to set the correct *OLD* (NOT NEW) assembly name.
SET @asmname = N'StrataCLR';
-- CURSOR VARIABLES --
DECLARE @wname NVARCHAR(1000);
DECLARE @wtype NVARCHAR(1000);
-- CURSOR VARIABLES (END) --
DECLARE dCursor CURSOR FAST_FORWARD FOR
SELECT '[' + ss.name + '].[' + o.name + ']' AS wraper_name, o.type
FROM sys.assembly_modules am
JOIN sys.objects o ON am.object_id = o.object_id
JOIN sys.assemblies sas ON sas.assembly_id = am.assembly_id
JOIN sys.schemas ss ON ss.schema_id = o.schema_id
WHERE sas.name = @asmname
OPEN dCursor
FETCH NEXT FROM dCursor INTO @wname, @wtype
WHILE @@FETCH_STATUS = 0
BEGIN
SET @drop_type = '';
IF @wtype IN ('PC', 'P')
SELECT @drop_type = 'PROCEDURE'
IF @wtype IN ('FN', 'FS', 'FT', 'IF', 'TF')
SELECT @drop_type = 'FUNCTION'
IF @wtype = 'AF'
SELECT @drop_type = 'AGGREGATE'
IF @wtype = 'U'
SELECT @drop_type = 'TABLE'
IF @wtype = 'V'
SELECT @drop_type = 'VIEW'
IF @drop_type <> ''
BEGIN
SET @d_sql = 'DROP '+ @drop_type + ' ' + @wname
EXEC(@d_sql);
END
FETCH NEXT FROM dCursor INTO @wname, @wtype
END
CLOSE dCursor
DEALLOCATE dCursor
--Finally drop the Assembly
SET @d_sql = N'IF EXISTS (SELECT * FROM sys.assemblies asms WHERE asms.name = ''' + @asmname + ''' AND is_user_defined = 1) DROP ASSEMBLY [StrataCLR]'
EXEC(@d_sql)
END
GO
---------------------------------------------
-- dbo.procSyncEMFDimensionWithScore
CREATE procedure [dbo].[procSyncEMFDimensionWithScore]
@listGUID uniqueidentifier,
@dimGUID uniqueidentifier,
@updateMemberGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000',
@nameCol nvarchar(64) = 'Name',
@sortCol nvarchar(64) = 'Name',
@scoreWhereClause nvarchar(4000) = '(1 = 1)',
@isdebug bit = 0
as
set nocount on
--verify dimension integrity
if((select COUNT(*) from SecureList where ListGUID = @listGUID) = 0) begin
RAISERROR ('EMF dimension not found.', 18, 0)
return
end
if((select COUNT(*) from ScoreDimension where DimensionGUID = @dimGUID) = 0) begin
RAISERROR ('Score dimension not found.', 18, 0)
return
end
if((select COUNT(*) from SecureListProperty LP left join viewScoreAttributeCore30 SA on SA.FriendlyName = LP.Name and SA.DimensionGUID = @dimGUID where LP.ListGUID = @listGUID and SA.AttributeGUID is null) > 0) begin
RAISERROR ('Attribute names don''t match.', 18, 0)
return
end
if((select COUNT(*) from SecureListLevel where ListGUID = @listGUID) > 2) begin
RAISERROR ('Dimensions with more than 2 levels are not supported.', 18, 0)
return
end
if((select COUNT(*) from SecureListLevel where ListGUID = @listGUID) > 1) begin
if((select COUNT(*) from SecureListLevel LL left join viewScoreAttributeCore30 SA on SA.FriendlyName = LL.Name and SA.DimensionGUID = @dimGUID where LL.LevelIndex = 0 and LL.ListGUID = @listGUID and SA.AttributeGUID is null) > 0) begin
RAISERROR ('Level names don''t match.', 18, 0)
return
end
end
--get score dimension table name
declare @dimTable nvarchar(100)
select @dimTable = SQLSchemaName + '.' + SQLObjectName from ScoreDimension where DimensionGUID = @dimGUID
--get emf cache table name
declare @cacheTable nvarchar(100)
set @cacheTable = 'zzList_' + REPLACE(cast(@listGUID as nvarchar(36)), '-', '_')
--get emf levels
declare @levelLeaf uniqueidentifier
declare @levelCategory uniqueidentifier
if((select COUNT(*) from SecureListLevel where ListGUID = @listGUID) > 1) begin
select @levelLeaf = ListLevelGUID from SecureListLevel where ListGUID = @listGUID and LevelIndex = 1
select @levelCategory = ListLevelGUID from SecureListLevel where ListGUID = @listGUID and LevelIndex = 0
end else begin
select @levelLeaf = ListLevelGUID from SecureListLevel where ListGUID = @listGUID and LevelIndex = 0
select @levelCategory = dbo.ZeroGUID()
end
declare @levelCategoryName nvarchar(100)
select
@levelCategoryName = SA.SQLColumnName
from SecureListLevel LL
left join viewScoreAttributeCore30 SA on SA.FriendlyName = LL.Name and SA.DimensionGUID = @dimGUID
where
LL.ListLevelGUID = @levelCategory
--select @levelCategoryName = Name from SecureListLevel where ListLevelGUID = @levelCategory
--get lootid info
declare @lootidPrefix nvarchar(100)
declare @lootidColName nvarchar(100)
set @lootidPrefix = coalesce((select SecuredLootGroupPrefix from viewScoreAttributeCore30 where IsSecuredLootID = 1 and DimensionGUID = @dimGUID), '')
set @lootidColName = coalesce((select SQLColumnName from viewScoreAttributeCore30 where IsSecuredLootID = 1 and DimensionGUID = @dimGUID), 'MemberGUID')
if(@lootidPrefix != '') begin
set @lootidPrefix = @lootidPrefix + '|'
end
--delete missing emf members
declare @deletesql nvarchar(max)
set @deletesql = 'delete from SecureListMember where ListGUID = ''' + CAST(@listGUID as nvarchar(36)) + ''' and ListMemberGUID not in(select MemberGUID from ' + @dimTable + ' where ' + @scoreWhereClause + ')'
if(@levelCategory != dbo.ZeroGUID()) begin
--don't delete parent members
set @deletesql = @deletesql + ' and ParentListMemberGUID != dbo.ZeroGUID()'
end
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only delete specified member
set @deletesql = @deletesql + ' and ListMemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
--delete from list cache also
set @deletesql = @deletesql + '; delete from ' + @cacheTable + ' where ListMemberGUID not in(select MemberGUID from ' + @dimTable + ' where ' + @scoreWhereClause + ')'
if(@levelCategory != dbo.ZeroGUID()) begin
--don't delete parent members
set @deletesql = @deletesql + ' and coalesce(L' + replace(CAST(@levelLeaf as nvarchar(36)), '-', '_') + ', dbo.ZeroGUID()) != dbo.ZeroGUID()'
end
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only delete specified member
set @deletesql = @deletesql + ' and ListMemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
--commit deletes
if(@isdebug = 1) begin
print @deletesql
end else begin
exec(@deletesql)
end
--create missing members
declare @insertsql nvarchar(max)
set @insertsql = '
INSERT INTO [SecureListMember] ([ListMemberGUID], [ListGUID], [ParentListMemberGUID], [Name], [Description], [FullPath], [DisplayOrder], [OutlineLevel], [ListMemberID], [SortOrderFullPath], [DateCreated], [DateModified], [LootIDOverride])
select
MemberGUID,
''' + cast(@listGUID as nvarchar(36)) + ''',
dbo.ZeroGUID(),
' + @nameCol + ',
'''',
''' + cast(@listGUID as nvarchar(36)) + '\'' + CAST(MemberGUID as nvarchar(36)) + ''\'',
0,
0,
cast(MemberGUID as nvarchar(36)),
''00000000\'',
GETDATE(),
GETDATE(),
''' + @lootidPrefix + ''' + cast(' + @lootidColName + ' as nvarchar(100))
from
' + @dimTable + '
where
' + @scoreWhereClause + '
and MemberGUID not in(select ListMemberGUID from SecureListMember where ListGUID = ''' + CAST(@listGUID as nvarchar(36)) + ''')'
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only create specified member
set @insertsql = @insertsql + ' and MemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
--create missing parents
if(@levelCategory != dbo.ZeroGUID()) begin
set @insertsql = @insertsql + ';
declare @parentName nvarchar(100)
declare crsParents cursor for select distinct ' + @levelCategoryName + ' from ' + @dimTable + ' where ' + @scoreWhereClause + ' and ' + @levelCategoryName + ' not in(select Name from SecureListMember where ParentListMemberGUID = dbo.ZeroGUID() and ListGUID = ''' + CAST(@listGUID as nvarchar(36)) + ''')'
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only create parent of specified member
set @insertsql = @insertsql + ' and MemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
set @insertsql = @insertsql + '
open crsParents
fetch next from crsParents into @parentName
declare @parentGUID uniqueidentifier
while(@@fetch_status = 0) begin
select @parentGUID = newid()
INSERT INTO [SecureListMember] ([ListMemberGUID], [ListGUID], [ParentListMemberGUID], [Name], [Description], [FullPath], [DisplayOrder], [OutlineLevel], [ListMemberID], [SortOrderFullPath], [DateCreated], [DateModified], [LootIDOverride])
select
@parentGUID,
''' + cast(@listGUID as nvarchar(36)) + ''',
dbo.ZeroGUID(),
@parentName,
'''',
''' + cast(@listGUID as nvarchar(36)) + '\'' + CAST(@parentGUID as nvarchar(36)) + ''\'',
0,
0,
cast(@parentGUID as nvarchar(36)),
''00000000\'',
GETDATE(),
GETDATE(),
''''
fetch next from crsParents into @parentName
end
close crsParents
deallocate crsParents'
end
--fix parents
if(@levelCategory != dbo.ZeroGUID()) begin
set @insertsql = @insertsql + ';
update LM set LM.ParentListMemberGUID = PLM.ListMemberGUID, LM.FullPath = PLM.FullPath + cast(LM.ListMemberGUID as nvarchar(36)) + ''\'', SortOrderFullPath = ''00000000\00000000\'', OutlineLevel=1
from
SecureListMember LM
inner join ' + @dimTable + ' SD on SD.MemberGUID = LM.ListMemberGUID
inner join SecureListMember PLM on PLM.Name = SD.' + @levelCategoryName + ' and PLM.OutlineLevel = 0
where
' + @scoreWhereClause + '
and LM.ListGUID = ''' + CAST(@listGUID as nvarchar(36)) + '''
and LM.ParentListMemberGUID != PLM.ListMemberGUID
'
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only fix specified member
set @insertsql = @insertsql + ' and LM.ListMemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
end
--add missing parents in cache
if(@levelCategory != dbo.ZeroGUID()) begin
set @insertsql = @insertsql + ';
INSERT INTO ' + @cacheTable + ' (L' + replace(CAST(@levelCategory as nvarchar(36)), '-', '_') + ', Name, ListMemberGUID)
select ListMemberGUID, Name, ListMemberGUID
from SecureListMember
where OutlineLevel = 0 and ListGUID = ''' + CAST(@listGUID as nvarchar(36)) + ''' and ListMemberGUID not in(select ListMemberGUID from ' + @cacheTable + ')'
end
--add other new members to list cache
set @insertsql = @insertsql + ';
INSERT INTO ' + @cacheTable + ' (L' + replace(CAST(@levelLeaf as nvarchar(36)), '-', '_') + ', Name, ListMemberGUID)
select ListMemberGUID, Name, ListMemberGUID
from SecureListMember
where ListGUID = ''' + CAST(@listGUID as nvarchar(36)) + ''' and ListMemberGUID not in(select ListMemberGUID from ' + @cacheTable + ')'
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only create specified member
set @insertsql = @insertsql + ' and ListMemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
--fix parents of leaf members in cache
if(@levelCategory != dbo.ZeroGUID()) begin
set @insertsql = @insertsql + ';
update LC set LC.L' + replace(cast(@levelCategory as nvarchar(36)), '-', '_') + ' = LM.ParentListMemberGUID
from
' + @cacheTable + ' LC
inner join SecureListMember LM on LC.ListMemberGUID = LM.ListMemberGUID
where
LM.ListGUID = ''' + CAST(@listGUID as nvarchar(36)) + '''
and LM.OutlineLevel = 1
and coalesce(LC.L' + replace(cast(@levelCategory as nvarchar(36)), '-', '_') + ', dbo.ZeroGUID()) != LM.ParentListMemberGUID
'
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only fix specified member
set @insertsql = @insertsql + ' and LC.ListMemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
end
--commit inserts
if(@isdebug = 1) begin
print @insertsql
end else begin
exec(@insertsql)
end
--create missing membervalue records
declare @valsyncsql nvarchar(max)
set @valsyncsql = '
insert into SecureListMemberValue(ListMemberValueGUID, ListMemberGUID, ListGUID, Type, ValueFloat, ValueText, ValueIndex)
select
NEWID(),
LM.ListMemberGUID,
LM.ListGUID,
case when LP.PropertyType = 1 then 1 else 0 end,
0,
'''',
LP.PropertyIndex
from
SecureListMember LM
inner join SecureListProperty LP on LP.ListGUID = LM.ListGUID
left join SecureListMemberValue LMV on LMV.ListMemberGUID = LM.ListMemberGUID and LMV.ValueIndex = LP.PropertyIndex
where
LM.ListGUID = ''' + CAST(@listGUID as nvarchar(36)) + '''
and LMV.ListMemberValueGUID is null'
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only create for specified member
set @valsyncsql = @valsyncsql + ' and LM.ListMemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
if(@isdebug = 1) begin
print @valsyncsql
end else begin
exec(@valsyncsql)
end
--update member name
declare @updatesql nvarchar(max)
set @updatesql = '
update LM set LM.Name = SD.' + @nameCol + '
from
SecureListMember LM
inner join ' + @dimTable + ' SD on SD.MemberGUID = LM.ListMemberGUID
where
' + @scoreWhereClause + '
and LM.Name != SD.' + @nameCol + '
and LM.ListGUID = ''' + CAST(@listGUID as nvarchar(36)) + ''''
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only update specified member
set @updatesql = @updatesql + ' and LM.ListMemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
--iterate through properties
declare @emfpropGUID uniqueidentifier
declare @emfpropType int
declare @scorepropName nvarchar(100)
declare crsAttributes cursor for select LP.ListPropertyGUID, LP.PropertyType, '[' + SA.SQLColumnName + ']' from SecureListProperty LP left join viewScoreAttributeCore30 SA on SA.FriendlyName = LP.Name and SA.DimensionGUID = @dimGUID where LP.ListGUID = @listGUID
open crsAttributes
fetch next from crsAttributes into @emfpropGUID, @emfpropType, @scorepropName
--update property values
while(@@FETCH_STATUS = 0) begin
--member value table updates
if(@emfpropType = 1) begin
--numeric property update
set @updatesql = @updatesql + ';
update LMV set LMV.ValueFloat = SD.' + @scorepropName + ', LMV.ValueText = ''''
from
SecureListMemberValue LMV
inner join SecureListProperty LP on LP.ListGUID = LMV.ListGUID and LP.PropertyIndex = LMV.ValueIndex
inner join ' + @dimTable + ' SD on SD.MemberGUID = LMV.ListMemberGUID
where
' + @scoreWhereClause + '
and LMV.ListGUID = ''' + cast(@listGUID as nvarchar(36)) + '''
and LP.ListPropertyGUID = ''' + CAST(@emfpropGUID as nvarchar(36)) + '''
and LMV.ValueFloat != SD.' + @scorepropName
end else begin
--text property update
set @updatesql = @updatesql + ';
update LMV set LMV.ValueFloat = 0, LMV.ValueText = SD.' + @scorepropName + '
from
SecureListMemberValue LMV
inner join SecureListProperty LP on LP.ListGUID = LMV.ListGUID and LP.PropertyIndex = LMV.ValueIndex
inner join ' + @dimTable + ' SD on SD.MemberGUID = LMV.ListMemberGUID
where
' + @scoreWhereClause + '
and LMV.ListGUID = ''' + cast(@listGUID as nvarchar(36)) + '''
and LP.ListPropertyGUID = ''' + CAST(@emfpropGUID as nvarchar(36)) + '''
and LMV.ValueText != cast(SD.' + @scorepropName + ' as nvarchar(1000))'
end
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only update specified member
set @updatesql = @updatesql + ' and LMV.ListMemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
--list cache (cheat and update name here too)
set @updatesql = @updatesql + ';
update LC set LC.Name = SD.' + @nameCol + ', LC.P' + replace(CAST(@emfpropguid as nvarchar(36)), '-', '_') + ' = SD.' + @scorepropName + '
from
' + @cacheTable + ' LC
inner join ' + @dimTable + ' SD on SD.MemberGUID = LC.ListMemberGUID
where
' + @scoreWhereClause + '
and (LC.Name != SD.' + @nameCol + ' or LC.P' + replace(CAST(@emfpropguid as nvarchar(36)), '-', '_') + ' is null or LC.P' + replace(CAST(@emfpropguid as nvarchar(36)), '-', '_') + ' != SD.' + @scorepropName + ')'
if(@updateMemberGUID != dbo.ZeroGUID()) begin
--only update specified member
set @updatesql = @updatesql + ' and LC.ListMemberGUID = ''' + CAST(@updateMemberGUID as nvarchar(36)) + ''''
end
fetch next from crsAttributes into @emfpropGUID, @emfpropType, @scorepropName
end
--update display orders for the whole dimension
declare @tmpname nvarchar(50)
select @tmpname = '##tmp' + replace(cast(newid() as nvarchar(36)), '-', '')
set @updatesql = @updatesql + ';
select MemberGUID, rank() over (order by ' + @sortCol + ') as [Rank] into ' + @tmpname + ' from ' + @dimTable + ';
update SLM set SLM.DisplayOrder = O.Rank, SLM.SortOrderFullPath = (SUBSTRING(''00000000'', 1, 8 - len(O.Rank)) + CAST(O.Rank as nvarchar(8)) + ''\'')
from
SecureListMember SLM
inner join ' + @tmpname + ' O on O.MemberGUID = SLM.ListMemberGUID and SLM.DisplayOrder != O.Rank
where
SLM.ListGUID = ''' + cast(@listGUID as nvarchar(36)) + ''';
drop table ' + @tmpname
--commit updates
close crsAttributes
deallocate crsAttributes
if(@isdebug = 1) begin
print @updatesql
end else begin
exec(@updatesql)
end
GO
---------------------------------------------
-- dbo.procSyncEMFDimensionWithScoreCreate
CREATE procedure [dbo].[procSyncEMFDimensionWithScoreCreate]
@listGUID uniqueidentifier,
@dimGUID uniqueidentifier,
@dimTableSchema nvarchar(64),
@dimTableName nvarchar(64),
@nameCol nvarchar(64) = 'Name',
@sortCol nvarchar(64) = 'Name',
@tolerance int = 200,
@isdebug bit = 0
as
declare @sql nvarchar(max)
set @sql = '
CREATE TRIGGER ' + @dimTableSchema + '.[' + replace(replace(@dimTableName, '[', ''), ']', '') + 'Sync]
ON ' + @dimTableSchema + '.[' + replace(replace(@dimTableName, '[', ''), ']', '') + ']
AFTER INSERT, DELETE, UPDATE
AS
BEGIN
SET NOCOUNT ON;
declare @memberGUID uniqueidentifier
--short-circuit and just refresh everything if there were a lot of updates
if(((select count(*) from INSERTED) + (select count(*) from DELETED)) > ' + CAST(@tolerance as nvarchar(8)) + ') begin
exec procSyncEMFDimensionWithScore ''' + cast(@listGUID as nvarchar(36)) + ''', ''' + cast(@dimGUID as nvarchar(36)) + ''', ''00000000-0000-0000-0000-000000000000'', ''' + @nameCol + ''', ''' + @sortCol + '''
return
end
--process deleted
declare crsDeleted cursor for select MemberGUID from DELETED where MemberGUID not in(select MemberGUID from INSERTED)
open crsDeleted
fetch next from crsDeleted into @memberGUID
while(@@fetch_status = 0) begin
exec procSyncEMFDimensionWithScore ''' + cast(@listGUID as nvarchar(36)) + ''', ''' + cast(@dimGUID as nvarchar(36)) + ''', @memberGUID, ''' + @nameCol + ''', ''' + @sortCol + '''
fetch next from crsDeleted into @memberGUID
end
close crsDeleted
deallocate crsDeleted
--process inserted
declare crsInserted cursor for select MemberGUID from INSERTED where MemberGUID not in(select MemberGUID from DELETED)
open crsInserted
fetch next from crsInserted into @memberGUID
while(@@fetch_status = 0) begin
exec procSyncEMFDimensionWithScore ''' + cast(@listGUID as nvarchar(36)) + ''', ''' + cast(@dimGUID as nvarchar(36)) + ''', @memberGUID, ''' + @nameCol + ''', ''' + @sortCol + '''
fetch next from crsInserted into @memberGUID
end
close crsInserted
deallocate crsInserted
--process updated
declare crsUpdated cursor for select MemberGUID from INSERTED where MemberGUID in(select MemberGUID from DELETED)
open crsUpdated
fetch next from crsUpdated into @memberGUID
while(@@fetch_status = 0) begin
exec procSyncEMFDimensionWithScore ''' + cast(@listGUID as nvarchar(36)) + ''', ''' + cast(@dimGUID as nvarchar(36)) + ''', @memberGUID, ''' + @nameCol + ''', ''' + @sortCol + '''
fetch next from crsUpdated into @memberGUID
end
close crsUpdated
deallocate crsUpdated
END
'
if(@isdebug = 1) begin
print @sql
end else begin
exec(@sql)
end
GO
---------------------------------------------
-- dbo.procSyncEMFDimensionWithScoreDrop
CREATE procedure [dbo].[procSyncEMFDimensionWithScoreDrop]
@dimTableSchema nvarchar(64),
@dimTableName nvarchar(64),
@isdebug bit = 0
as
declare @sql nvarchar(max)
set @sql = 'DROP TRIGGER ' + @dimTableSchema + '.[' + REPLACE(REPLACE(@dimTableName, '[', ''), ']', '') + 'Sync]'
if(@isdebug = 1) begin
print @sql
end else begin
exec(@sql)
end
GO
---------------------------------------------
-- dbo.procSysDisableChangeTrackingOnTable
CREATE PROCEDURE [dbo].[procSysDisableChangeTrackingOnTable]
(
@schemaName NVARCHAR(128),
@tableName NVARCHAR(128)
)
AS
BEGIN
DECLARE @fulltablename NVARCHAR(256) = @schemaName + '.' + @tableName;
DECLARE @SQL VARCHAR(MAX);
SET @SQL = 'IF EXISTS (SELECT 1 FROM sys.change_tracking_tables
WHERE object_id = OBJECT_ID(N''' + @fulltablename + '''))
BEGIN
ALTER TABLE ' + @fulltablename + ' DISABLE CHANGE_TRACKING
END'
Exec(@SQL);
END
GO
---------------------------------------------
-- dbo.procSysDropAllColumnConstraints
CREATE procedure [dbo].[procSysDropAllColumnConstraints] (
@schema sysname,
@object sysname
)
AS
BEGIN
declare @tableexpression sysname;
set @tableexpression = dbo.GetSQLTableExpression(@schema, @object);
declare colCursor CURSOR local FAST_FORWARD FOR
select ColumnName from viewSysColumns where ObjectID = OBJECT_ID(@tableexpression);
open colCursor;
DECLARE @column nvarchar(128);
FETCH NEXT FROM colCursor into @column
WHILE (@@FETCH_STATUS = 0)
BEGIN
exec procSysDropColumnConstraints @schema, @object, @column;
--print 'exec procSysDropColumnConstraints @schema, @table, @column';
FETCH NEXT FROM colCursor into @column
END
close colCursor;
DEALLOCATE colCursor;
END
GO
---------------------------------------------
-- dbo.procSysDropClusteredIndex
create procedure [dbo].[procSysDropClusteredIndex] (@schema sysname, @table sysname)
AS
BEGIN
--DROP CLUSTERED INDEX
declare @tableexpression sysname;
set @tableexpression = dbo.GetSQLTableExpression(@schema, @table);
declare @ClusteredIndexName varchar(200)
set @ClusteredIndexName = (select i.name from sys.indexes i
inner join sys.tables t on i.object_id=t.object_id
inner join sys.schemas s on t.schema_id=s.schema_id
where t.type = 'u' and t.name = @table and s.name = @schema and i.type = 1)
declare @sql nvarchar(max);
set @sql = '
IF EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N''[' + @schema + '].[' + @table + ']'') AND name = N''' + @ClusteredIndexName + ''' and is_primary_key = 1)
ALTER TABLE ' + @tableexpression + ' DROP CONSTRAINT [' + @ClusteredIndexName + ']
IF EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N''[' + @schema + '].[' + @table + ']'') AND name = N''' + @ClusteredIndexName + ''' and is_primary_key = 0)
DROP INDEX ' + @ClusteredIndexName + ' ON ' + @tableexpression + ' WITH ( ONLINE = OFF )'
exec sp_executesql @sql;
END
RETURN
GO
---------------------------------------------
-- dbo.procSysDropColumnAndDefault
CREATE PROC [dbo].[procSysDropColumnAndDefault]
@schema SYSNAME,
@table SYSNAME,
@column SYSNAME
AS
DECLARE @sql VARCHAR(MAX)
SET @sql = '
ALTER TABLE [{0}].[{1}] DROP COLUMN [{2}]
'
IF (dbo.ColumnExists(@schema, @table, @column) = 1)
BEGIN
SET @sql = REPLACE(@sql, '{0}', @schema)
SET @sql = REPLACE(@sql, '{1}', @table)
SET @sql = REPLACE(@sql, '{2}', @column)
BEGIN TRY
EXEC procSysDropColumnConstraints @schema, @table, @column
EXEC (@sql)
END TRY
BEGIN CATCH
PRINT 'Column drop not successful: ' + @schema + '.' + @table + '.' + @column
EXEC procSysRethrowError
END CATCH
END
GO
---------------------------------------------
-- dbo.procSysDropColumnConstraints
CREATE proc [dbo].[procSysDropColumnConstraints]
@schemaName sysname,
@tableName sysname,
@columnName sysname,
@includeCheck bit = 1,
@includeFK bit = 1,
@includePK bit = 1,
@includeUnique bit = 1,
@includeDefault bit = 1
as
declare crsCursor CURSOR local FAST_FORWARD FOR
select 'ALTER TABLE [' + @schemaName + '].[' +@tableName + '] DROP CONSTRAINT [' + so.name + ']'
from sysobjects so
inner join sys.sysconstraints sc on so.id = sc.constid
left join sys.key_constraints kc on kc.object_id = so.id
left join sys.syscolumns scol on sc.colid = scol.colid and scol.id = so.parent_obj
left join sys.indexes i on i.index_id = kc.unique_index_id and i.object_id = object_id( '[' + @schemaName + '].[' +@tableName + ']' )
left join sys.index_columns ic on ic.index_id = i.index_id and ic.object_id = object_id( '[' + @schemaName + '].[' +@tableName + ']' )
left join sys.columns icol on icol.column_id = ic.column_id and icol.object_id = object_id( '[' + @schemaName + '].[' +@tableName + ']' )
where
((@includeCheck = 1 and so.xtype = 'C')
or
(@includeFK = 1 and so.xtype = 'F')
or
(@includePK = 1 and so.xtype = 'PK')
or
(@includeUnique = 1 and so.xtype = 'UQ')
or
(@includeDefault = 1 and so.xtype = 'D'))
and (so.status & 64) = 0
and parent_obj = object_id( '[' + @schemaName + '].[' +@tableName + ']' )
and (scol.name = @columnName or icol.name = @columnName)
open crsCursor;
DECLARE @SQL NVARCHAR(MAX)
FETCH NEXT FROM crsCursor into @sql
WHILE (@@FETCH_STATUS = 0)
BEGIN
exec(@sql)
FETCH NEXT FROM crsCursor into @sql
END
close crsCursor;
DEALLOCATE crsCursor;
GO
---------------------------------------------
-- dbo.procSysDropColumnDefault
CREATE proc [dbo].[procSysDropColumnDefault]
@schemaName sysname,
@tableName sysname,
@columnName sysname
as
exec dbo.procSysDropColumnConstraints @schemaName,@tableName,@columnName,0,0,0,0,1;
GO
---------------------------------------------
-- dbo.procSysDropForeignKeyConstraint
CREATE PROC dbo.procSysDropForeignKeyConstraint
@SchemaName NVARCHAR(10),
@TableName NVARCHAR(100),
@ColumnName NVARCHAR(256)
AS
BEGIN
DECLARE @command NVARCHAR(MAX)
select @Command = 'ALTER TABLE ' + @SchemaName + '.[' + @TableName + '] DROP CONSTRAINT ' + d.name
from sys.tables t
join sys.default_constraints d on d.parent_object_id = t.object_id
join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id
where t.name = @TableName
and t.schema_id = schema_id(@SchemaName)
and c.name = @ColumnName;
EXEC sp_executesql @command
END
GO
---------------------------------------------
-- dbo.procSysDropIndex
/**************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2021-12-16 KF JAZZ-31105 Created
** 2 2022-01-20 HV JAZZ-32256 Add possibility to drop index for views
*************************************************************/
CREATE PROCEDURE dbo.procSysDropIndex (@schema sysname, @table sysname, @indexName sysname, @isView bit = 0)
AS
DECLARE @indexExists bit
IF @isView = 0
BEGIN
SET @indexExists =
CASE WHEN EXISTS
(select 1 from sys.indexes i
inner join sys.tables t on t.object_id = i.object_id
inner join sys.schemas s on s.schema_id = t.schema_id
where s.name = @schema and t.name = @table and i.name = @indexName)
THEN 1 ELSE 0
END
END
ELSE -- @isView = 1
BEGIN
SET @indexExists =
CASE WHEN EXISTS
(select 1 from sys.indexes i
inner join sys.views t on t.object_id = i.object_id
inner join sys.schemas s on s.schema_id = t.schema_id
where s.name = @schema and t.name = @table and i.name = @indexName)
THEN 1 ELSE 0
END
END
IF (@indexExists = 1)
BEGIN
declare @sql nvarchar(max);
set @sql = N'DROP INDEX ['+@indexName+'] ON ['+@schema+'].['+@table+']'
exec sp_executesql @sql
END
GO
---------------------------------------------
-- dbo.procSysDropPrimaryKeyConstraint
CREATE PROC dbo.procSysDropPrimaryKeyConstraint
@SchemaName NVARCHAR(10),
@TableName NVARCHAR(100)
AS
BEGIN
DECLARE @PKName NVARCHAR(MAX)
SELECT @PKName = k.name
FROM sys.key_constraints k
INNER JOIN sys.tables t ON k.parent_object_id = t.object_id
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE k.type = 'PK' AND t.name = @TableName and s.name = @SchemaName
DECLARE @dropsql NVARCHAR(MAX) = 'ALTER TABLE ' + @SchemaName + '.' + @TableName + ' DROP CONSTRAINT ' + @PKName
EXEC sp_executesql @dropsql
END
GO
---------------------------------------------
-- dbo.procSysDropProc
CREATE PROCEDURE [dbo].[procSysDropProc](
@schema SYSNAME,
@proc SYSNAME
)
AS
BEGIN
DECLARE @tableexpression SYSNAME;
SET @tableexpression = dbo.GetSQLTableExpression(@schema, @proc);
DECLARE @sql VARCHAR(MAX);
SET @sql = 'DROP PROCEDURE ' + @tableexpression;
-- NOW DROP THE VIEW ---------------------------------------------------------------------
IF EXISTS(SELECT * FROM sys.procedures WHERE name = @proc AND schema_name(schema_id) = @schema)
EXEC (@sql);
END
GO
---------------------------------------------
-- dbo.procSysDropTable
CREATE procedure [dbo].[procSysDropTable] (
@schema sysname,
@table sysname
)
AS
BEGIN
declare @tableexpression sysname;
set @tableexpression = dbo.GetSQLTableExpression(@schema, @table);
-- DROP CONSTRAINTS,TRIGGERS
exec procSysDropAllColumnConstraints @schema, @table
exec procSysDropTriggers @schema, @table;
-- NOW DROP THE TABLE ---------------------------------------------------------------------
declare @sql varchar(max);
set @sql = '
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[' + @schema + '].[' + @table + ']'') AND type in (N''U''))
DROP TABLE ' + @tableexpression + ';
';
exec (@sql);
END
GO
---------------------------------------------
-- dbo.procSysDropTempTable
CREATE PROCEDURE [dbo].[procSysDropTempTable] (
@tempTable SYSNAME
)
AS
BEGIN
-- NOW DROP THE TEMP TABLE ---------------------------------------------------------------------
DECLARE @sql VARCHAR(MAX);
SET @sql = '
IF OBJECT_ID(''tempdb..' + @tempTable + ''') IS NOT NULL
DROP TABLE ' + @tempTable + ';
';
EXEC (@sql);
END
GO
---------------------------------------------
-- dbo.procSysDropTrigger
CREATE procedure [dbo].[procSysDropTrigger] (
@schema sysname,
@trigger sysname
)
AS
BEGIN
declare @triggerexpression sysname;
set @triggerexpression = dbo.GetSQLTableExpression(@schema, @trigger);
-- NOW DROP THE TABLE ---------------------------------------------------------------------
declare @sql varchar(max);
set @sql = '
if (OBJECT_ID(''[' + @schema + '].[' + @trigger + ']'', ''TRIGGER'') is not null)
DROP TRIGGER ' + @triggerexpression + ';
';
print @sql;
exec (@sql);
END
GO
---------------------------------------------
-- dbo.procSysDropTriggers
CREATE procedure [dbo].[procSysDropTriggers] (
@schema sysname,
@object sysname,
@IncludeAfter bit = 1,
@IncludeInsteadOf bit = 1
)
AS
BEGIN
declare @tableexpression sysname;
set @tableexpression = dbo.GetSQLTableExpression(@schema, @object);
declare tCursor CURSOR FAST_FORWARD FOR
select Name from sys.triggers T where T.parent_id = OBJECT_ID(@tableexpression)
and
((@IncludeAfter=1 and T.is_instead_of_trigger = 0) OR (@IncludeInsteadOf=1 and T.is_instead_of_trigger=1));
open tCursor;
DECLARE @trigger nvarchar(128);
FETCH NEXT FROM tCursor into @trigger
WHILE (@@FETCH_STATUS = 0)
BEGIN
declare @sql varchar(max);
set @sql = 'DROP TRIGGER [' + @schema + '].[' + @trigger + ']';
exec (@sql);
FETCH NEXT FROM tCursor into @trigger
END
close tCursor;
DEALLOCATE tCursor;
END
GO
---------------------------------------------
-- dbo.procSysDropView
CREATE procedure [dbo].[procSysDropView] (
@schema sysname,
@view sysname
)
AS
BEGIN
declare @tableexpression sysname;
set @tableexpression = dbo.GetSQLTableExpression(@schema, @view);
-- DROP TRIGGERS
exec procSysDropTriggers @schema, @view;
-- NOW DROP THE VIEW ---------------------------------------------------------------------
declare @sql varchar(max);
set @sql = '
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''[' + @schema + '].[' + @view + ']'') AND type in (N''V''))
DROP VIEW ' + @tableexpression + ';
';
exec (@sql);
END
GO
---------------------------------------------
-- dbo.procSysGetUniqueObjectName
create procedure procSysGetUniqueObjectName (
@schema sysname,
@desiredName sysname
)
AS
BEGIN
declare @testname sysname;
declare @index int;
set @testname = @desiredName;
set @index = 0;
if ( 0 = (select COUNT(O.object_id) from sys.objects O inner join sys.schemas S on S.schema_id = O.schema_id where S.name = @schema and O.name = @desiredName))
BEGIN
select @desiredName
return;
END
WHILE (1=1)
BEGIN
set @testname = @desiredName + '_' + CAST(@index as nvarchar(max));
if ( 0 = (select COUNT(O.object_id) from sys.objects O inner join sys.schemas S on S.schema_id = O.schema_id where S.name = @schema and O.name = @testname))
BEGIN
select @testname
return;
END
set @index = @index + 1;
END
END
GO
---------------------------------------------
-- dbo.procSysGetUniqueObjectNameForCopy
CREATE procedure [dbo].[procSysGetUniqueObjectNameForCopy] (
@schema sysname,
@desiredName sysname
)
AS
BEGIN
declare @testname sysname;
declare @index int;
set @testname = @desiredName;
set @index = 0;
if ( 0 = (select COUNT(O.object_id) from sys.objects O inner join sys.schemas S on S.schema_id = O.schema_id where S.name = @schema and O.name = @desiredName))
BEGIN
select @desiredName
return;
END
WHILE (1=1)
BEGIN
set @testname = @desiredName + ' - Copy' + ISNULL(
(case when @index = 0 then null else ' (' + CAST(@index as nvarchar(max)) + ')' end),
'');
if ( 0 = (select COUNT(O.object_id) from sys.objects O inner join sys.schemas S on S.schema_id = O.schema_id where S.name = @schema and O.name = @testname))
BEGIN
select @testname
return;
END
set @index = @index + 1;
END
END
GO
---------------------------------------------
-- dbo.procSysRefreshView
CREATE procedure [dbo].[procSysRefreshView] (
@viewName nvarchar(256)
)
AS
BEGIN
-- NOW REFRESH THE VIEW ---------------------------------------------------------------------
declare @sql varchar(max);
set @sql = '
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''' + @viewName + ''') AND type in (N''V''))
EXEC sp_refreshview ''' + @viewName + ''';
';
EXEC (@sql);
END
GO
---------------------------------------------
-- dbo.procSysRethrowError
-- Create the stored procedure to generate an error using
-- RAISERROR. The original error information is used to
-- construct the msg_str for RAISERROR.
CREATE PROCEDURE procSysRethrowError AS
-- Return if there is no error information to retrieve.
IF ERROR_NUMBER() IS NULL
RETURN;
DECLARE
@ErrorMessage NVARCHAR(4000),
@ErrorNumber INT,
@ErrorSeverity INT,
@ErrorState INT,
@ErrorLine INT,
@ErrorProcedure NVARCHAR(200);
-- Assign variables to error-handling functions that
-- capture information for RAISERROR.
SELECT
@ErrorNumber = ERROR_NUMBER(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE(),
@ErrorLine = ERROR_LINE(),
@ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');
-- Build the message string that will contain original
-- error information.
SELECT @ErrorMessage =
N'Error %d, Level %d, State %d, Procedure %s, Line %d, ' +
'Message: '+ ERROR_MESSAGE();
-- Raise an error: msg_str parameter of RAISERROR will contain
-- the original error information.
RAISERROR
(
@ErrorMessage,
@ErrorSeverity,
1,
@ErrorNumber, -- parameter: original error number.
@ErrorSeverity, -- parameter: original error severity.
@ErrorState, -- parameter: original error state.
@ErrorProcedure, -- parameter: original error procedure name.
@ErrorLine -- parameter: original error line number.
);
GO
---------------------------------------------
-- dbo.procSysSetColumnIdentity
CREATE proc [dbo].[procSysSetColumnIdentity] (
@schema varchar(max),
@table varchar(max),
@column varchar(max),
@isDebug bit = 0)
as
-- Helper Variables
declare @tempTable varchar(max)
declare @columnType varchar(max)
declare @source varchar(max)
-- SQL
declare @backupSQL varchar(max)
declare @dropConstraintsSQL varchar(max)
declare @fixTableSQL varchar(max)
declare @reloadValuesSQL varchar(max)
declare @addConstraintsSQL varchar(max)
set @tempTable = '#zzTemp' + @table + 'Fix'
set @source = '[' + @schema + '].[' + @table + ']'
-- Validate Input
if ((select object_id from sys.tables t inner join sys.schemas s on s.schema_id = t.schema_id where s.name like @schema and t.name like @table) is null) begin
print 'Unable to find table: ' + @source + '.'
return
end
if ((select c.object_id from sys.columns c inner join sys.tables t on t.object_id = c.object_id inner join sys.schemas s on s.schema_id = t.schema_id where s.name like @schema and t.name like @table and c.name like @column) is null) begin
print 'Unable to find column: [' + @column + '] in table: ' + @source + '.'
return
end
select @columnType = ty.name from sys.columns c inner join sys.tables t on t.object_id = c.object_id inner join sys.schemas s on s.schema_id = t.schema_id inner join sys.types ty on ty.system_type_id = c.system_type_id where s.name like @schema and t.name
like @table and c.name like @column;
if (@columnType is null or @columnType not in ('tinyint', 'smallint', 'int', 'bigint')) begin
print 'Invalid column type: ''' + @columnType + '''. Expecting an integer.'
return
end
declare @columns as varchar(max)
set @columns = ''
select @columns = @columns + ',[' + c.name + ']'
from sys.columns c
inner join sys.tables t on t.object_id = c.object_id
inner join sys.schemas s on s.schema_id = t.schema_id
inner join sys.types ct on ct.system_type_id = c.system_type_id and ct.user_type_id = c.user_type_id
where s.name = @schema and t.name = @table and ct.name not in ('timestamp')
if (LEN(@columns) > 0) set @columns = SUBSTRING(@columns, 2, len(@columns) - 1)
-- Save the values SQL
set @backupSQL = '
select ' + @columns + ' into ' + @tempTable + ' from ' + @source + ';
'
-- Reload Values SQL
set @reloadValuesSQL = '
set identity_insert ' + @source + ' ON;
truncate table ' + @source + ';
insert into ' + @source + '(' + @columns + ') select ' + @columns + ' from ' + @tempTable + ';
set identity_insert ' + @source + ' OFF;
drop table ' + @tempTable + ';
'
-- Fix Table
set @fixTableSQL = '
alter table ' + @source + ' drop column [' + @column + '];
alter table ' + @source + ' add [' + @column + '] ' + @columnType + ' not null identity(1,1);
'
-- Constraints
declare @defvalueName varchar(max)
declare @defvalue varchar(max)
select @defvalueName = d.name, @defvalue = d.definition
from sys.default_constraints d
inner join sys.tables t on t.object_id = d.parent_object_id
inner join sys.schemas s on t.schema_id = t.schema_id
inner join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id
where s.name like @schema and t.name like @table and c.name like @column
if (@defvalue is not null and @defvalueName is not null) begin
set @dropConstraintsSQL = '
alter table ' + @source + ' drop constraint ' + @defvalueName + ';'
-- Default cannot be re-added because it will be an identity
end
set @dropConstraintsSQL = ISNULL(@dropConstraintsSQL, '')
set @addConstraintsSQL = ISNULL(@addConstraintsSQL, '')
declare @fkName varchar(max)
declare @deleteAction varchar(max)
declare @updateAction varchar(max)
declare @pSchema varchar(max)
declare @pTable varchar(max)
declare @pColumn varchar(max)
declare @pSource varchar(max)
declare fkCursor CURSOR LOCAL FAST_FORWARD FOR
select
fk.name, fk.delete_referential_action_desc, fk.update_referential_action_desc, psch.name as parent_schema, ptbl.name as parent_table, pcol.name as parent_table_column
from sys.foreign_keys fk
inner join sys.foreign_key_columns fkc on fkc.constraint_object_id = fk.object_id
inner join sys.tables fktbl on fktbl.object_id = fk.referenced_object_id
inner join sys.schemas fksch on fksch.schema_id = fktbl.schema_id
inner join sys.columns fkcol on fkcol.object_id = fktbl.object_id and fkcol.column_id = fkc.referenced_column_id
inner join sys.tables ptbl on ptbl.object_id = fk.parent_object_id
inner join sys.schemas psch on psch.schema_id = ptbl.schema_id
inner join sys.columns pcol on pcol.object_id = fk.parent_object_id and pcol.column_id = fkc.parent_column_id
where fksch.name like @schema and fktbl.name like @table and fkcol.name like @column
open fkCursor;
fetch next from fkCursor into @fkName, @deleteAction, @updateAction, @pSchema, @pTable, @pColumn
while (@@FETCH_STATUS <> -1) begin
set @pSource = '[' + @pSchema + '].[' + @pTable + ']'
set @updateAction = REPLACE(@updateAction, '_', ' ')
set @deleteAction = REPLACE(@deleteAction, '_', ' ')
set @dropConstraintsSQL = @dropConstraintsSQL + '
alter table ' + @pSource + ' drop constraint ' + @fkName + ';'
set @addConstraintsSQL = @addConstraintsSQL + '
alter table ' + @pSource + ' add constraint ' + @fkName + ' foreign key ([' + @pColumn + '])
references ' + @source + '([' + @column + '])
on update ' + @updateAction + '
on delete ' + @deleteAction + ';
'
fetch next from fkCursor into @fkName, @deleteAction, @updateAction, @pSchema, @pTable, @pColumn
end
close fkCursor
deallocate fkCursor
declare @pkname varchar(max)
declare @pkcolumns varchar(max)
select @pkname = c.CONSTRAINT_NAME
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
inner join INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE c on c.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
where tc.TABLE_SCHEMA like @schema and tc.TABLE_NAME like @table and tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
if (@pkname is not null) begin
set @pkcolumns = ''
select @pkcolumns = @pkcolumns + ', [' + c.COLUMN_NAME + ']' from INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
inner join INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE c on c.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
where tc.TABLE_SCHEMA like @schema and tc.TABLE_NAME like @table and tc.CONSTRAINT_TYPE = 'PRIMARY KEY'
if (len(@pkcolumns) > 0) set @pkcolumns = SUBSTRING(@pkcolumns, 3, len(@pkcolumns) - 2)
set @dropConstraintsSQL = @dropConstraintsSQL + '
alter table ' + @source + ' drop constraint ' + @pkname + ';'
set @addConstraintsSQL = '
alter table ' + @source + ' add constraint ' + @pkname + ' primary key (' + @pkcolumns + ');' + @addConstraintsSQL
end
--- Print/Exec
if (@isDebug = 1) begin
print 'begin transaction;'
print 'begin try
-- Backing up values: ' + @backupSQL
print '
-- Dropping Constraints: ' + @dropConstraintsSQL
print '
-- Fixing Table: ' + @fixTableSQL
print '
-- Reloading values: ' + @reloadValuesSQL
print '
-- Re-Adding Constraints: ' + @addConstraintsSQL
print '
end try
begin catch
print cast(ERROR_NUMBER() as varchar(max)) + '' : '' + ERROR_MESSAGE()
if @@TRANCOUNT > 0
rollback transaction;
end catch;
if @@TRANCOUNT > 0
commit transaction;'
end
else begin
begin transaction;
begin try
exec (@backupSQL + @dropConstraintsSQL + @fixTableSQL + @reloadValuesSQL + @addConstraintsSQL)
end try
begin catch
print cast(ERROR_NUMBER() as varchar(max)) + ' : ' + ERROR_MESSAGE()
if @@TRANCOUNT > 0
rollback transaction;
end catch;
if @@TRANCOUNT > 0
commit transaction;
end
GO
---------------------------------------------
-- dbo.procSysUpdateColumnType
CREATE proc [dbo].[procSysUpdateColumnType]
@schema sysname,
@table sysname,
@column sysname,
@newtype varchar(100),
@meta varchar(100) = 'NOT NULL DEFAULT (0)'
as
begin try
exec ('
alter table ' + @schema + '.' + @table + ' add ' + @column + '__New ' + @newtype + ' ' + @meta+ '
exec (''update ' + @schema + '.' + @table + ' set ' + @column + '__New = ' + @column + ''')
exec procSysDropColumnAndDefault ''' + @schema + ''', ''' + @table + ''', ''' + @column + '''
exec sp_rename ''' + @schema + '.' + @table + '.' + @column + '__New'', ''' + @column + ''', ''COLUMN'';
')
end try
begin catch
print 'Column type change failed.'
exec [dbo].[procSysRethrowError]
end catch
GO
---------------------------------------------
-- dbo.procTEEvictModelCache
CREATE PROCEDURE [dbo].[procTEEvictModelCache]
(
@PlanWhereClause nvarchar(max),
@IsDebugOnly bit = 0
)
AS
DECLARE @json NVARCHAR(max)
if (exists(select 1 from fw.systemsetting where name = 'Use TaskEngine' and value = '1')) begin
set @json = '{' +
'"PlanWhereClause":"' + replace(@PlanWhereClause, '''', '''''') + '"' +
'}';
end else begin
set @json = '{' +
'"PlanWhereClause":"' + @PlanWhereClause + '"' +
'}';
end
if (@IsDebugOnly = 0) begin
DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.ModelEngine.Tasks.EvictModelCacheTask, Strata.CS.Jazz.Biz',
@contextXML = @json,
@taskSource = 'procTEEvictModelCache',
@statusCode = @statusCode OUTPUT;
IF @statusCode < 200 OR @statusCode > 299
BEGIN
RAISERROR('Failed to insert to Hangfire',16,1);
END;
end else begin
print 'DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = ''Strata.CS.Jazz.Biz.ModelEngine.Tasks.EvictModelCacheTask, Strata.CS.Jazz.Biz'',
@contextXML = ''' + @json + ''',
@taskSource = ''procTEEvictModelCache'',
@statusCode = @statusCode OUTPUT;'
end
GO
---------------------------------------------
-- dbo.procTEGetLinkedServerFullName
CREATE PROCEDURE dbo.procTEGetLinkedServerFullName(
@ReturnVal nvarchar(256) OUTPUT
)
AS
BEGIN
declare @SMC_SERVER nvarchar(128);
declare @SMC_DB nvarchar(128);
declare @TE_GUID nvarchar(36);
select @SMC_SERVER = Setting from DBSetting where Name = 'SMC_PRIMARY_SERVER'
select @SMC_DB = setting from DBSetting where Name = 'SMC_PRIMARY_DATABASE'
select @TE_GUID = setting from DBSetting where Name = 'TASKENGINE_CONNECTIONKEY'
DECLARE @TE_FULLNAME nvarchar(256);
declare @sql nvarchar(max);
set @sql = '
select
@TE_FULLNAMEOUT = LinkedServerFullName
from [' + @SMC_SERVER + '].[' + @SMC_DB + '].[dbo].[viewDatabaseInfo]
where DatabaseGUID = ''' + @TE_GUID + '''
'
EXECUTE sp_executesql
@sql,
N'@TE_FULLNAMEOUT nvarchar(256) OUTPUT',
@TE_FULLNAMEOUT=@TE_FULLNAME OUTPUT;
SELECT @ReturnVal = @TE_FULLNAME;
END
GO
---------------------------------------------
-- dbo.procTEPartialModelRefresh
CREATE PROCEDURE [dbo].[procTEPartialModelRefresh]
(
@compositeGUID uniqueidentifier,
@ModelGUIDList nvarchar(max),
@IsDebugOnly bit = 0
)
AS
begin
if (@IsDebugOnly = 1) begin
print 'EXEC dbo.procCreateTask
@taskTypeName = ''Strata.CS.Jazz.Biz.ModelEngine.Tasks.RefreshModelTask, Strata.CS.Jazz.Biz'',
@contextXML = '''',
@taskSource = ''procTEPartialModelRefresh'';'
return
end
--add to refresh queue, converting any requests that were already in queue into full refreshes
update q set q.CompositeGUID = dbo.ZeroGUID() from [dbo].[MEModelRefreshQueue] q inner join [dbo].[XPlan] P (readuncommitted) on P.PlanGUID = q.ModelGUID where P.PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@ModelGUIDList, ',')) and q.CompositeGUID != dbo.ZeroGUID() and q.CompositeGUID != @compositeGUID;
insert into [dbo].[MEModelRefreshQueue] (ModelGUID, Source, CompositeGUID)
select
P.PlanGUID,
'procTEPartialModelRefresh',
case when mt.IsMemoryCachable = 1
then @compositeGUID
else dbo.ZeroGUID()
end
from [dbo].[XPlan] P (readuncommitted)
inner join [dbo].[EMFModelTemplate] mt on mt.ModelTemplateGUID = P.ModelTemplateGUID
where 1=1
and P.ModelTemplateGUID <> '7F792F1F-F32A-4053-9907-534A2D736D45' --filter GM Blank template
and P.PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@ModelGUIDList, ','))
and not exists(select 1 from [dbo].[MEModelRefreshQueue] ex where ex.ModelGUID = P.PlanGUID);
--invalidate cache for requests that turned into full refreshes
exec procInvalidateModelWorkbookCacheByWhereClause 'PlanGUID in(select ModelGUID from dbo.MEModelRefreshQueue where CompositeGUID = dbo.ZeroGUID())', 0, 'procTEPartialModelRefresh'
--create task
DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.ModelEngine.Tasks.RefreshModelTask, Strata.CS.Jazz.Biz',
@contextXML = '',
@taskSource = 'procTEPartialModelRefresh',
@statusCode = @statusCode OUTPUT;
IF @statusCode < 200 OR @statusCode > 299
BEGIN
RAISERROR('Failed to insert to Hangfire',16,1);
END;
end
GO
---------------------------------------------
-- dbo.procTERefreshFillins
CREATE PROCEDURE [dbo].[procTERefreshFillins]
(
@planTypeGUID uniqueidentifier,
@modelTemplateGUID uniqueidentifier,
@placeholderSectionGUIDList nvarchar(max),
@IsDebugOnly bit = 0
)
AS
if (@IsDebugOnly = 1) begin
print 'EXEC dbo.procCreateTask
@taskTypeName = ''Strata.CS.Jazz.Biz.ModelEngine.Fillins20.FillinRefreshTask, Strata.CS.Jazz.Biz'',
@contextXML = '''',
@taskSource = ''procTERefreshFillins'';'
return
end
--insert refresh requests
if(@placeholderSectionGUIDList <> '')
begin
INSERT INTO [dbo].[FillinRefreshRequest] ([PlanTypeGUID], [ModelTemplateGUID], [PlaceHolderSectionGUID])
SELECT @planTypeGUID, @modelTemplateGUID, guid FROM CSVGuidsToTable(@placeholderSectionGUIDList)
end
else
begin
if(@modelTemplateGUID <> '00000000-0000-0000-0000-000000000000')
begin
INSERT INTO [dbo].[FillinRefreshRequest] ([ModelTemplateGUID]) VALUES (@modelTemplateGUID)
end
else
begin
INSERT INTO [dbo].[FillinRefreshRequest] ([PlanTypeGUID]) VALUES (@planTypeGUID)
end
end
--create task
DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.ModelEngine.Fillins20.FillinRefreshTask, Strata.CS.Jazz.Biz',
@contextXML = '',
@taskSource = 'procTERefreshFillins',
@statusCode = @statusCode OUTPUT;
IF @statusCode < 200 OR @statusCode > 299
BEGIN
RAISERROR('Failed to insert to Hangfire',16,1);
END;
GO
---------------------------------------------
-- dbo.procTERefreshFillinsByPlan
CREATE PROCEDURE [dbo].[procTERefreshFillinsByPlan]
(
@planGUIDList nvarchar(max),
@placeholderSectionGUIDList nvarchar(max),
@IsDebugOnly bit = 0
)
AS
if (@IsDebugOnly = 1) begin
print 'EXEC dbo.procCreateTask
@taskTypeName = ''Strata.CS.Jazz.Biz.ModelEngine.Fillins20.FillinRefreshTask, Strata.CS.Jazz.Biz'',
@contextXML = '''',
@taskSource = ''procTERefreshFillinsByPlan'';'
return
end
--insert refresh requests
if(@placeholderSectionGUIDList = '')
begin
INSERT INTO [dbo].[FillinRefreshRequest] ([PlanGUID])
SELECT guid FROM CSVGuidsToTable(@planGUIDList)
end
else
begin
INSERT INTO [dbo].[FillinRefreshRequest] ([PlaceHolderSectionGUID], [PlanGUID])
SELECT phs.guid, p.guid FROM CSVGuidsToTable(@planGUIDList) p cross apply CSVGuidsToTable(@placeholderSectionGUIDList) phs
end
--create task
DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.ModelEngine.Fillins20.FillinRefreshTask, Strata.CS.Jazz.Biz',
@contextXML = '',
@taskSource = 'procTERefreshFillins',
@statusCode = @statusCode OUTPUT;
IF @statusCode < 200 OR @statusCode > 299
BEGIN
RAISERROR('Failed to insert to Hangfire',16,1);
END;
GO
---------------------------------------------
-- dbo.procTERefreshModel
CREATE PROCEDURE [dbo].[procTERefreshModel]
(
@ModelGUID uniqueidentifier,
@IsIgnoreLock bit = 0, --obsolete
@UseDependencies bit = 0, --obsolete
@IsDebugOnly bit = 0
)
AS
begin
if (@IsDebugOnly = 1) begin
print 'EXEC dbo.procCreateTask
@taskTypeName = ''Strata.CS.Jazz.Biz.ModelEngine.Tasks.RefreshModelTask, Strata.CS.Jazz.Biz'',
@contextXML = '''',
@taskSource = ''procTERefreshModel'';'
return
end
--add to refresh queue
insert into [dbo].[MEModelRefreshQueue] (ModelGUID, Source)
select
P.PlanGUID,
'procTERefreshModel'
from [dbo].[XPlan] P (readuncommitted)
where 1=1
and P.ModelTemplateGUID <> '7F792F1F-F32A-4053-9907-534A2D736D45' --filter GM Blank template
and P.PlanGUID = @ModelGUID
and not exists(select 1 from [dbo].[MEModelRefreshQueue] ex where ex.ModelGUID = P.PlanGUID)
--invalidate cache
exec procInvalidateModelWorkbookCache @ModelGUID, 0, 0, 'procTERefreshModel'
--create task
DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.ModelEngine.Tasks.RefreshModelTask, Strata.CS.Jazz.Biz',
@contextXML = '',
@taskSource = 'procTERefreshModel',
@statusCode = @statusCode OUTPUT;
IF @statusCode < 200 OR @statusCode > 299
BEGIN
RAISERROR('Failed to insert to Hangfire',16,1);
END;
end
GO
---------------------------------------------
-- dbo.procTERefreshModelList
CREATE PROCEDURE [dbo].[procTERefreshModelList]
(
@ModelGUIDList nvarchar(max),
@IsDebugOnly bit = 0
)
AS
begin
if (@IsDebugOnly = 1) begin
print 'EXEC dbo.procCreateTask
@taskTypeName = ''Strata.CS.Jazz.Biz.ModelEngine.Tasks.RefreshModelTask, Strata.CS.Jazz.Biz'',
@contextXML = '''',
@taskSource = ''procTERefreshModelList'';'
return
end
--add to refresh queue
insert into [dbo].[MEModelRefreshQueue] (ModelGUID, Source)
select
P.PlanGUID,
'procTERefreshModelList'
from [dbo].[XPlan] P (readuncommitted)
where 1=1
and P.ModelTemplateGUID <> '7F792F1F-F32A-4053-9907-534A2D736D45' --filter GM Blank template
and P.PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(@ModelGUIDList, ','))
and not exists(select 1 from [dbo].[MEModelRefreshQueue] ex where ex.ModelGUID = P.PlanGUID)
--invalidate cache
declare @invalidateWhere nvarchar(max)
set @invalidateWhere = 'PlanGUID in(select guid from dbo.ConvertCSGuidsToTable(''' + @ModelGUIDList + ''', '',''))'
exec procInvalidateModelWorkbookCacheByWhereClause @invalidateWhere, 0, 'procTERefreshModelList'
--create task
DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.ModelEngine.Tasks.RefreshModelTask, Strata.CS.Jazz.Biz',
@contextXML = '',
@taskSource = 'procTERefreshModelList',
@statusCode = @statusCode OUTPUT;
IF @statusCode < 200 OR @statusCode > 299
BEGIN
RAISERROR('Failed to insert to Hangfire',16,1);
END;
end
GO
---------------------------------------------
-- dbo.procTERefreshModelTemplate
CREATE PROCEDURE [dbo].[procTERefreshModelTemplate]
(
@ModelTemplateGUID uniqueidentifier,
@IsIgnoreLock bit = 0, --obsolete
@IsDebugOnly bit = 0
)
AS
begin
if (@ModelTemplateGUID = '7F792F1F-F32A-4053-9907-534A2D736D45') return --filter GM Blank template
if (@IsDebugOnly = 1) begin
print 'EXEC dbo.procCreateTask
@taskTypeName = ''Strata.CS.Jazz.Biz.ModelEngine.Tasks.RefreshModelTask, Strata.CS.Jazz.Biz'',
@contextXML = '''',
@taskSource = ''procTERefreshModelTemplate'';'
return
end
--add to refresh queue
insert into [dbo].[MEModelRefreshQueue] (ModelGUID, Source)
select P.PlanGUID, 'procTERefreshModelTemplate'
from [dbo].[XPlan] P (readuncommitted)
where 1=1
and P.ModelTemplateGUID = @ModelTemplateGUID
and not exists(select 1 from [dbo].[MEModelRefreshQueue] ex where ex.ModelGUID = P.PlanGUID)
--invalidate cache
exec procInvalidateModelWorkbookCache @ModelTemplateGUID, 1, 0, 'procTERefreshModelTemplate'
--create task
DECLARE @statusCode INT;
EXEC dbo.procCreateTask
@taskTypeName = 'Strata.CS.Jazz.Biz.ModelEngine.Tasks.RefreshModelTask, Strata.CS.Jazz.Biz',
@contextXML = '',
@taskSource = 'procTERefreshModelTemplate',
@statusCode = @statusCode OUTPUT;
IF @statusCode < 200 OR @statusCode > 299
BEGIN
RAISERROR('Failed to insert to Hangfire',16,1);
END;
end
GO
---------------------------------------------
-- dbo.procTableReseedIdentity
CREATE PROCEDURE dbo.procTableReseedIdentity
@schemaName VARCHAR(100),
@tableName VARCHAR(100),
@seedValue INT = null AS
BEGIN
DECLARE @tableNameWithSchema VARCHAR(200)
SET @tableNameWithSchema = @schemaName + '.' + @tableName
IF OBJECTPROPERTY(OBJECT_ID(@tableNameWithSchema), 'TableHasIdentity') = 1
BEGIN
SELECT @seedValue = ISNULL(@seedValue,IDENT_SEED(@tableNameWithSchema))
DBCC CHECKIDENT(@tableNameWithSchema,'RESEED', @seedValue)
END
END
GO
---------------------------------------------
-- dbo.procTruncateTemplateMappingbyFramework
CREATE PROC [dbo].[procTruncateTemplateMappingbyFramework]
@FrameworkID Int
as
DECLARE @SCHEMA nvarchar(256)
DECLARE @FactTableName nvarchar(256)
DECLARE @SQL nvarchar(1024)
DECLARE @SQL2 nvarchar(1024)
DECLARE @FrameworkSchemaName nvarchar(100) = (Select FrameworkSchemaName from [fw].[DimFramework] WHERE FrameworkID=@FrameworkID)
DECLARE @ClientSchemaName nvarchar(100) = (Select ClientSchemaName from [fw].[DimFramework]WHERE FrameworkID=@FrameworkID)
Declare @TemplateGUIDs nvarchar(max)
DECLARE FactTableCursor CURSOR FOR
select
t.name
, (select name from sys.schemas where schema_id = t.schema_id)
from sys.tables t
where
1=1
and t.schema_id in(select schema_id from sys.schemas where name in(@FrameworkSchemaName, @ClientSchemaName) )
and t.name like 'fact%' and t.name like '%map' and name not like '%FactWorkingHoursPerMonthMap'
order by t.name
OPEN FactTableCursor
FETCH NEXT FROM FactTableCursor
INTO @FactTableName, @SCHEMA
WHILE @@FETCH_STATUS = 0
BEGIN
set @SQL = 'truncate table ' + @SCHEMA + '.' + @FactTableName
set @SQL2='DBCC CHECKIDENT (''' + + @SCHEMA + '.' + @FactTableName + ''', RESEED, 1)'
-- print @SQL
-- print @SQL2
EXECUTE sp_executesql @SQL
EXECUTE sp_executesql @SQL2
FETCH NEXT FROM FactTableCursor INTO @FactTableName, @SCHEMA
END
CLOSE FactTableCursor
DEALLOCATE FactTableCursor
select @TemplateGUIDs = dbo.straggr(a.ID, ',', '') from (
select distinct cast(db.ModelTemplateGUID as nvarchar(36)) as ID from [dbo].[EMFModelTemplateFramework] db where FrameworkID=@FrameworkID
) a
exec [dbo].[procRunForManyGUIDs] @sql = 'exec [dbo].[procEMFRemoveTemplateMappings] @modeltemplateguid ={guidq} ,@includeprofiles = 1', @guids = @TemplateGUIDs, @isExecuting = 1
RETURN
GO
---------------------------------------------
-- dbo.procUpdateDefaultMemberGuid
--Author: rreimer
--Branch: DSSAdvancedCostingNoKoz
--Forward
create proc procUpdateDefaultMemberGuid
as
set nocount on
declare @dimGuid nvarchar(36)
declare @tableName nvarchar(max)
declare crsInfo cursor fast_forward for
select
cast(DG.DimensionGUID as nvarchar(36)),
DG.SchemaName + '.' + DG.ObjectName as SQLObjectName
from
[dbo].[ScoreDimension] D
inner join [dbo].[ScoreDimensionGroup] DG on DG.DimensionGroupGUID = D.PrimaryGroupGUID
inner join sys.tables T on T.Name = DG.ObjectName
inner join sys.schemas S on S.Name = DG.SchemaName and T.schema_id = S.schema_id
where
D.DefaultMemberGUID ='00000000-0000-0000-0000-000000000000'
and exists(select 1 from sys.columns C where C.object_id = T.object_id and Name = 'Name')
open crsInfo
fetch next from crsInfo into @dimGuid,@tableName
declare @sql nvarchar(max)
while(@@FETCH_STATUS = 0) begin
set @sql = '
update [dbo].[ScoreDimension] set DefaultMemberGUID =
coalesce((select top 1 M.MemberGUID from '+@tableName+' M where M.Name like ''%Not Specified%''), dbo.ZeroGUID())
where DimensionGUID = ''' + @dimGuid +''''
exec (@sql)
fetch next from crsInfo into @dimGuid, @tableName
end
close crsInfo
deallocate crsInfo
GO
---------------------------------------------
-- dbo.procUpdateDefaultMemberGuid2
CREATE proc [dbo].[procUpdateDefaultMemberGuid2]
@dimGuid nvarchar(36),
@tableName nvarchar(max),
@nameColumn nvarchar(max)
as
declare @sql nvarchar(max)
set @sql = '
update [dbo].[ScoreDimension] set DefaultMemberGUID =
coalesce((select top 1 M.MemberGUID from '+@tableName+' M where M.'+@nameColumn+' like ''%Not Specified%''), dbo.ZeroGUID())
where DimensionGUID = ''' + @dimGuid +''''
exec (@sql)
RETURN
GO
---------------------------------------------
-- dbo.procUpdateScheduledTaskIsDisabled
/*************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2019-12-16 KF B-24658 MR | Automatic Reminders
*************************************************************/
CREATE PROCEDURE [dbo].[procUpdateScheduledTaskIsDisabled]
@ScheduledTaskGUID uniqueidentifier,
@IsDisabled BIT
AS
UPDATE dbo.TEScheduledTask
SET IsDisabled = @IsDisabled
WHERE ScheduledTaskGUID = @ScheduledTaskGUID
GO
---------------------------------------------
-- dbo.procUserCheckPasswordHistory
-- =============================================
-- Author: Eric Kretzer
-- Create date: 04/12/2011
-- Description: Check to see if a password has been used in the last X iterations
-- =============================================
CREATE PROCEDURE [dbo].[procUserCheckPasswordHistory]
@USERGUID as uniqueidentifier,
@HASHEDPASSWORD as nvarchar(64),
@ITERATIONS as tinyint
AS
BEGIN
select case when COUNT(*) > 0 then 1 else 0 end as [IsUsedPassword] from passwordhistory where UserGUID = @UserGUID and Iteration <= @Iterations and HashedPassword = @HashedPassword
END
GO
---------------------------------------------
-- dbo.procUserGroupDelete
CREATE procedure [dbo].[procUserGroupDelete]
@UserGroupGUID uniqueidentifier,
@Name nvarchar(64) = '',
@Type int = 0,
@Description nvarchar(4000) = '',
@Category nvarchar(64) = '',
@LootGUID uniqueidentifier = '00000000-0000-0000-0000-00000000000000',
@UserRoleGUID uniqueidentifier = '00000000-0000-0000-0000-00000000000000'
as
--Role assignment groups should never be deleted manually
IF (@Type != 1) BEGIN
DELETE FROM UserGroup WHERE UserGroupGUID = @UserGroupGUID
END
GO
---------------------------------------------
-- dbo.procUserGroupInsert
CREATE procedure [dbo].[procUserGroupInsert]
@UserGroupGUID uniqueidentifier,
@Name nvarchar(64),
@Type int,
@Description nvarchar(4000),
@Category nvarchar(64),
@LootGUID uniqueidentifier,
@UserRoleGUID uniqueidentifier
as
IF (@Type != 1) BEGIN
INSERT INTO UserGroup (UserGroupGUID, Name, Type, Description, Category)
VALUES (@UserGroupGUID, @Name, @Type, @Description, @Category)
END
GO
---------------------------------------------
-- dbo.procUserGroupUpdate
CREATE procedure [dbo].[procUserGroupUpdate]
@UserGroupGUID uniqueidentifier,
@Name nvarchar(64),
@Type int,
@Description nvarchar(4000),
@Category nvarchar(64),
@LootGUID uniqueidentifier,
@UserRoleGUID uniqueidentifier
as
IF (@Type != 1) BEGIN
UPDATE UserGroup SET Name = @Name, Type = @Type, Description = @Description, Category = @Category WHERE UserGroupGUID = @UserGroupGUID
END
GO
---------------------------------------------
-- dbo.procUserSetPassword
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
CREATE PROCEDURE [dbo].[procUserSetPassword]
@USERGUID as uniqueidentifier,
@HASHEDPASSWORD as nvarchar(64)
AS
BEGIN
UPDATE UserProfile
SET
HASHEDPASSWORD = @HASHEDPASSWORD
WHERE
USERGUID = @USERGUID
END
GO
---------------------------------------------
-- dbo.procUserSetPasswordAll
create proc dbo.procUserSetPasswordAll
@UnhashedPassword nvarchar(64)
as
set nocount on
declare @userguid uniqueidentifier
declare crsUsers cursor fast_forward for select UserGUID from [dbo].[UserProfile]
open crsUsers
fetch next from crsUsers into @userguid
while (@@fetch_status = 0) begin
update [dbo].[UserProfile] set HashedPassword = dbo.GetHashedPassword(UserGUID, @UnhashedPassword) where UserGUID = @userguid
fetch next from crsUsers into @userguid
end
close crsUsers
deallocate crsUsers
GO
---------------------------------------------
-- dbo.procUserSetPasswordSandbox
CREATE proc dbo.procUserSetPasswordSandbox
@UnhashedPassword nvarchar(64)
as
set nocount on
declare @userguid uniqueidentifier
declare crsUsers cursor fast_forward for select UserGUID from [dbo].[UserProfile] where UserName like 'sandbox%' or UserName like 'elearning%'
or userguid in (select UserGUID from [dbo].[DemoUser]) order by UserName
open crsUsers
fetch next from crsUsers into @userguid
while (@@fetch_status = 0) begin
update [dbo].[UserProfile] set HashedPassword = dbo.GetHashedPassword(UserGUID, @UnhashedPassword) where UserGUID = @userguid
fetch next from crsUsers into @userguid
end
close crsUsers
deallocate crsUsers
GO
---------------------------------------------
-- dbo.procUsersEnsureSimpleMode
CREATE procedure [dbo].[procUsersEnsureSimpleMode]
as
begin
insert into UserProfileAppModeAccessLink (UserGUID, AccessLevel)
select
UP.UserGUID, 1
from
UserProfile UP
where
not exists(select 1 from UserProfileAppModeAccessLink L where UP.UserGUID = L.UserGUID)
end
GO
---------------------------------------------
-- dbo.procValidateColumnsExists
create proc [dbo].[procValidateColumnsExists]
@schema nvarchar(max),
@object nvarchar(max),
@column nvarchar(max)
as
if dbo.ColumnExists(@schema, @object, @column) = 0
print @schema + '.' + @object + '.' + @column + ' is missing.'
GO
---------------------------------------------
-- dbo.procValidateDimensionProperty
CREATE proc [dbo].[procValidateDimensionProperty]
@DimensionName nvarchar(450),
@PropertyName nvarchar(450),
@MatchDimensionName nvarchar(450),
@MatchDimensionLevel int = -1
AS
DECLARE @DimensionGUID uniqueidentifier
DECLARE @PropertyIndex int
DECLARE @TargetDimensionGUID uniqueidentifier
SET @DimensionGUID = '00000000-0000-0000-0000-000000000000'
SELECT @DimensionGUID = ListGUID FROM SecureList WHERE [Name] = @DimensionName
IF(@DimensionGUID = '00000000-0000-0000-0000-000000000000') BEGIN
PRINT 'Dimension not found.'
RETURN
END
SET @PropertyIndex = -1
SELECT @PropertyIndex = PropertyIndex FROM SecureListProperty WHERE ListGUID = @DimensionGUID AND [Name] = @PropertyName
IF(@PropertyIndex = -1) BEGIN
PRINT 'Property not found.'
RETURN
END
SET @TargetDimensionGUID = '00000000-0000-0000-0000-000000000000'
SELECT @TargetDimensionGUID = ListGUID FROM SecureList WHERE [Name] = @MatchDimensionName
IF(@TargetDimensionGUID = '00000000-0000-0000-0000-000000000000') BEGIN
PRINT 'Target dimension not found.'
RETURN
END
SELECT
SM.ListMemberGUID AS MemberGUID,
SM.[Name] AS Member,
SMV.ValueText AS MemberPropertyValue
FROM
SecureListMember SM
LEFT JOIN SecureListMemberValue SMV ON SM.ListMemberGUID = SMV.ListMemberGUID AND SMV.ValueIndex = @PropertyIndex
LEFT JOIN SecureListMember TM ON TM.ListGUID = @TargetDimensionGUID AND (SMV.ValueText = TM.[Name] OR CAST(SMV.ValueFloat AS NVARCHAR(64)) = TM.[Name]) AND (@MatchDimensionLevel = -1 OR TM.OutlineLevel = @MatchDimensionLevel)
WHERE
SM.ListGUID = @DimensionGUID
AND TM.ListMemberGUID IS NULL
ORDER BY
SM.SortOrderFullPath
GO
---------------------------------------------
-- dbo.procValidateModelStructures
-- =============================================
-- Author: Eric Kretzer
-- Create date: Nov 21, 2006
-- Description: Validates the Model Structure dynamic tables zzEMFModelMapping & zzEMFModelData
-- =============================================
CREATE PROCEDURE [dbo].[procValidateModelStructures]
AS
BEGIN
SET NOCOUNT ON;
DECLARE @zzMDCGUID uniqueidentifier
DECLARE @mdcName nvarchar(max)
DECLARE @zzMDCtablename nvarchar(36)
DECLARE @zzDIMcursor nvarchar(256)
DECLARE @zzDIMcolumnname nvarchar(256)
DECLARE @modelTemplateMappingTableName nvarchar(256)
DECLARE @modelDataTableName nvarchar(256)
DECLARE @dimensionName as nvarchar(256)
DECLARE @dimensionGUID as uniqueidentifier
DECLARE @fixSQL as nvarchar(max)
DECLARE zztable CURSOR LOCAL FAST_FORWARD
FOR SELECT NAME, MODELDATACONFIGGUID FROM EMFMODELDATACONFIG
OPEN zztable
FETCH NEXT FROM zztable INTO @mdcName, @zzMDCGUID
WHILE @@FETCH_STATUS = 0
BEGIN
--SET @zztable_query = 'ALTER TABLE ' + @zztable_name + ' ADD [MAPPINGTYPE] int NOT NULL Default(0) WITH VALUES'
--EXECUTE sp_executesql @zztable_query
SET @zzMDCtablename = REPLACE(@zzMDCGUID,'-','_')
--PRINT @zztablename + ' table is present'
--else
SET @zzMDCtablename = REPLACE(@zzMDCGUID,'-','_')
SET @modelDataTableName = 'zzEMFModelData_' + @zzMDCtablename
if (select count(*) from sysobjects where xtype='u' and name like @modelDataTableName) = 0
--PRINT @zztablename + ' table is present'
--else
PRINT @modelDataTableName + ' table is not present'
SET @zzMDCtablename = REPLACE(@zzMDCGUID,'-','_')
SET @modelTemplateMappingTableName = 'zzEMFModelTemplateMapping_' + @zzMDCtablename
if (select count(*) from sysobjects where xtype='u' and name like @modelDataTableName) = 0
--PRINT @zztablename + ' table is present'
--else
PRINT @modelTemplateMappingTableName + ' table is not present'
--SELECT sysobjects.name, syscolumns.name,* FROM sysobjects JOIN syscolumns ON sysobjects.id = syscolumns.id WHERE sysobjects.xtype='U' order by sysobjects.name, syscolumns.name
DECLARE @type int
DECLARE zzdimensions CURSOR LOCAL FAST_FORWARD
FOR SELECT SLM.LISTGUID, SLM.NAME, UPPER('G' + REPLACE(cast(SLM.LISTGUID as varchar(36)),'-','_')) FROM dbo.EMFModelDataConfigDimensionLink MDCDL JOIN SECURELIST SLM ON MDCDL.DIMENSIONGUID=SLM.LISTGUID WHERE MDCDL.MODELDATACONFIGGUID = @zzMDCGUID
OPEN zzdimensions
FETCH NEXT FROM zzdimensions INTO @dimensionGUID, @dimensionName, @zzDIMcursor
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @type = LISTTYPE FROM SECURELIST WHERE LISTGUID = @dimensionGUID
IF @type = 0 or @type = 3 BEGIN
SET @zzDIMcolumnname = @zzDIMcursor --+ 'GUID'
SET @fixSQL = 'DELETE FROM emfmodeldataconfigdimensionlink WHERE DIMENSIONGUID = ''' + cast(@dimensionGUID as varchar(36)) + ''' and MODELDATACONFIGGUID = ''' + cast(@zzMDCGUID as varchar(36)) + ''''
IF (SELECT count(*) FROM sysobjects JOIN syscolumns ON sysobjects.id = syscolumns.id WHERE sysobjects.xtype='U' AND (sysobjects.name like @modelDataTableName or sysobjects.name like @modelTemplateMappingTableName)and syscolumns.name like @zzDIMcolumnname) <> 2
--PRINT ' ' + @zzDIMcolumnname + ' is present'
--ELSE
PRINT @fixSQL + ' --' + cast(@zzMDCGUID as varchar(36)) + ' (' + @mdcName + ') - ' + @zzDIMcolumnname + ' (' + @dimensionName + ') is not present in both ModelData and ModelMapping'
END
FETCH NEXT FROM zzdimensions INTO @dimensionGUID, @dimensionName, @zzDIMcursor
END
CLOSE zzdimensions
DEALLOCATE zzdimensions
FETCH NEXT FROM zztable INTO @mdcName, @zzMDCGUID
END
CLOSE zztable
DEALLOCATE zztable
END
GO
---------------------------------------------
-- dbo.procVerifyReportFolder
CREATE PROC [dbo].[procVerifyReportFolder] (
@sourcedb nvarchar(100),
@folderGUID uniqueidentifier
)
AS
BEGIN
IF EXISTS (SELECT 1 FROM [dbo].[Folder] WHERE FolderGuid = @folderGUID)
BEGIN
RETURN
END
DECLARE @sql nvarchar(4000) = 'INSERT INTO [dbo].[Folder] ([FolderGuid], [FolderSetGUID], [ParentFolderGUID], [Name], [Description], [DateCreated], [DateModified], [OutlineLevel], [DisplayOrder], [ImageType], [FolderType], [QueryRootXML], [IsDeletedFolder], [BasedOnFolderGUID], [UpgradeHierarchyPath], [GlobalID])
SELECT ''' + CAST(@folderGuid AS nvarchar(50)) + ''', [FolderSetGUID], [ParentFolderGUID], [Name], [Description], [DateCreated], [DateModified], [OutlineLevel], [DisplayOrder], [ImageType], [FolderType], [QueryRootXML], [IsDeletedFolder], ''00000000-0000-0000-0000-000000000000'', [UpgradeHierarchyPath], [GlobalID]
FROM ' + @sourceDB + '.[dbo].[Folder]
WHERE folderGUID = ''' + CAST(@folderGuid AS nvarchar(50)) + ''''
EXEC sp_executeSql @sql
DECLARE @parentFolderGUID uniqueidentifier
SELECT @parentFolderGUID = ParentFolderGUID FROM [dbo].[Folder] WHERE FolderGuid = @folderGUID
IF NOT EXISTS (SELECT 1 FROM [dbo].[Folder] WHERE FolderGuid = @parentFolderGUID)
BEGIN
EXEC [dbo].[procVerifyReportFolder] @sourcedb, @parentFolderGUID
END
END
GO
---------------------------------------------
-- dbo.procWFBrokenConditionsFix
create proc [dbo].[procWFBrokenConditionsFix]
as
if((select COUNT(*) from wfeventplanstatement where type=1 and statementguid not in(select conditionsetguid from wfconditionset)) > 0) begin
declare crsStatements cursor for select statementguid from wfeventplanstatement where type=1 and statementguid not in(select conditionsetguid from wfconditionset)
declare @statementguid uniqueidentifier
declare @conditionguid uniqueidentifier
open crsStatements
fetch next from crsStatements into @statementguid
while(@@FETCH_STATUS = 0) begin
select @conditionguid = newid()
insert into wfconditionset values(@statementguid, @conditionguid);
insert into wfcondition values(@conditionguid, @statementguid, 1, '00000000-0000-0000-0000-000000000000', '', '', 'Always', '', '');
fetch next from crsStatements into @statementguid
end
close crsStatements
deallocate crsStatements
end
GO
---------------------------------------------
-- dbo.procWFHistoryReport
CREATE PROCEDURE [dbo].[procWFHistoryReport]
@workflowMapGUID uniqueidentifier,
@planGUIDList nvarchar(max)
AS
declare @tempTableName nvarchar(34)
select @tempTableName = '#T' + replace(CAST(NEWID() as nvarchar(36)), '-', '')
declare @allsql nvarchar(max)
set @allsql = '
declare @workflowMapGUID uniqueidentifier
declare @planGUIDList nvarchar(max)
set @workflowMapGUID = ''' + CAST(@workflowMapGUID as nvarchar(36)) + '''
set @planGUIDList = ''' + @planGUIDList + '''
--create empty records for all plan/step combinations
select distinct
e.EntityGUID,
s.WorkflowStepGUID,
CAST(''1900-01-01 12:00:00.000'' as datetime) as EnteredStep,
CAST(''1900-01-01 12:00:00.000'' as datetime) as ExitedStep,
0 as DaysInStep
into ' + @tempTableName + '
from
WFWorkflowStep s
cross join dbo.viewWFEntity e
where
s.WorkflowMapGUID = @workflowMapGUID
and e.EntityGUID in (select entityguid from WFToken where WorkflowMapGUID = @workflowMapGUID)
and e.EntityGUID in (select guid from dbo.ConvertCSGuidsToTable(@planGUIDList, '',''))
and s.IsHidden = 0
and s.IsHiddenInRouting = 0
declare @planguid uniqueidentifier
declare @stepguid uniqueidentifier
declare crsPlan cursor for select EntityGUID, WorkflowStepGUID from ' + @tempTableName + '
open crsPlan
fetch next from crsPlan into @planguid, @stepguid
declare @sql nvarchar(max)
--fill in entered/exited step dates from history
while(@@FETCH_STATUS = 0) begin
set @sql = ''
update ' + @tempTableName + ' set EnteredStep = coalesce(h.DateTimeStamp, ''''1900-01-01 12:00:00.000'''')
from
' + @tempTableName + ' wfh
inner join historyitem h on wfh.EntityGUID = h.ObjectGUID and h.Category=''''Workflow'''' and (h.MetaXML.exist(''''//WORKFLOWCHANGE[TYPE = 1 and ITEMGUID = "'' + lower(cast(@stepguid as nvarchar(36))) + ''"]'''') = 1)
where
wfh.EntityGUID = '''''' + cast(@planguid as nvarchar(36)) + '''''' and wfh.WorkflowStepGUID = '''''' + cast(@stepguid as nvarchar(36)) + '''''';
update ' + @tempTableName + ' set ExitedStep = coalesce(h.DateTimeStamp, ''''1900-01-01 12:00:00.000'''')
from
' + @tempTableName + ' wfh
inner join historyitem h on wfh.EntityGUID = h.ObjectGUID and h.Category=''''Workflow'''' and (h.MetaXML.exist(''''//WORKFLOWCHANGE[(TYPE = 3 or TYPE = 10) and ITEMGUID = "'' + lower(cast(@stepguid as nvarchar(36))) + ''"]'''') = 1)
where
wfh.EntityGUID = '''''' + cast(@planguid as nvarchar(36)) + '''''' and wfh.WorkflowStepGUID = '''''' + cast(@stepguid as nvarchar(36)) + '''''';
''
exec(@sql)
fetch next from crsPlan into @planguid, @stepguid
end
close crsPlan
deallocate crsPlan
--calculate time in step
update ' + @tempTableName + ' set DaysInStep = cast((GETDATE() - EnteredStep) as int) where EnteredStep != ''1900-01-01 12:00:00.000'' and ExitedStep = ''1900-01-01 12:00:00.000'';
update ' + @tempTableName + ' set DaysInStep = cast((ExitedStep - EnteredStep) as int) where EnteredStep != ''1900-01-01 12:00:00.000'' and ExitedStep != ''1900-01-01 12:00:00.000'';
select * from ' + @tempTableName + '
drop table ' + @tempTableName + '
'
exec(@allsql)
GO
---------------------------------------------
-- dbo.procWFMergeWorkflows
create proc procWFMergeWorkflows
@sourceWorkflowGUID uniqueidentifier,
@targetWorkflowGUID uniqueidentifier
as
update WFComment set WorkflowMapGUID = @targetWorkflowGUID where WorkflowMapGUID = @sourceWorkflowGUID
update WFHistory set WorkflowMapGUID = @targetWorkflowGUID where WorkflowMapGUID = @sourceWorkflowGUID
update WFProcess set WorkflowMapGUID = @targetWorkflowGUID where WorkflowMapGUID = @sourceWorkflowGUID
update WFProcessStepLink set WorkflowMapGUID = @targetWorkflowGUID where WorkflowMapGUID = @sourceWorkflowGUID
update WFToken set WorkflowMapGUID = @targetWorkflowGUID where WorkflowMapGUID = @sourceWorkflowGUID
update WFTransition set WorkflowMapGUID = @targetWorkflowGUID where WorkflowMapGUID = @sourceWorkflowGUID
update WFWorkflowStep set WorkflowMapGUID = @targetWorkflowGUID where WorkflowMapGUID = @sourceWorkflowGUID
delete from WFToken where WorkflowMapGUID = @targetWorkflowGUID
GO
---------------------------------------------
-- dbo.procWFPlanStepCacheRefresh
CREATE proc dbo.procWFPlanStepCacheRefresh
as
set nocount on
declare @currentPlanGUID uniqueidentifier
declare @lastPlanGUID uniqueidentifier = '00000000-0000-0000-0000-000000000000'
declare @stepName nvarchar(64)
declare @stepGUID uniqueidentifier
declare @stepList nvarchar(max) = ''
declare @stepGUIDList nvarchar(max) = ''
declare crsTokens cursor fast_forward for select distinct T.EntityGUID, S.WorkflowStepGUID, S.Name from [dbo].[WFToken] T (readuncommitted) inner join [dbo].[WFWorkflowStep] S on S.WorkflowStepGUID = T.WorkflowStepGUID where S.IsHidden = 0 and S.IsHiddenInRouting = 0 order by T.EntityGUID
open crsTokens
fetch next from crsTokens into @currentPlanGUID, @stepGUID, @stepName
while (@@fetch_status = 0) begin
if (@lastPlanGUID != @currentPlanGUID) begin
if (len(@stepList) > 0) begin
update [dbo].[XPlan] set CachedWorkflowStep = left(@stepList, 128), CachedWorkflowStepGUIDsCSV = left(@stepGUIDList, 400) where PlanGUID = @lastPlanGUID
end
set @stepList = ''
set @stepGUIDList = ''
set @lastPlanGUID = @currentPlanGUID
end
if (len(@stepList) > 0) begin
set @stepList = @stepList + ', '
set @stepGUIDList = @stepGUIDList + ','
end
set @stepList = @stepList + @stepName
set @stepGUIDList = @stepGUIDList + cast(@stepGUID as nvarchar(36))
fetch next from crsTokens into @currentPlanGUID, @stepGUID, @stepName
end
if (@lastPlanGUID != '00000000-0000-0000-0000-000000000000') and (len(@stepList) > 0) begin
update [dbo].[XPlan] set CachedWorkflowStep = left(@stepList, 128), CachedWorkflowStepGUIDsCSV = left(@stepGUIDList, 400) where PlanGUID = @lastPlanGUID
end
close crsTokens
deallocate crsTokens
GO
---------------------------------------------
-- dbo.procWFSecurityRemoveInvalid
create proc dbo.procWFSecurityRemoveInvalid
@entityGUID uniqueidentifier,
@wfStepGUID uniqueidentifier
as
delete ra
from
WFToken t
inner join viewWFEntity e on e.EntityGUID = t.EntityGUID
inner join WFWorkflowStep s on s.WorkflowStepGUID = t.WorkflowStepGUID
inner join UserRole r on r.Type = case when s.ReviewerAccess = 1 then 6 when s.ReviewerAccess = 2 then 8 else -1 end
inner join S3RoleAssignment ra on ra.LootGroupID = e.CachedLootID and ra.RoleID = r.RoleID
inner join UserProfile u on u.userGUID = ra.IdentityGUID --wf auto-security is always applied directly to users
where
s.ReviewerAccess in(1, 2) --read, write
and s.ReviewerExitAccess != s.ReviewerAccess
and not exists( --checks if assigned user is not a reviewer
select 1
from
viewWFReviewerAssignmentIndexedAll ra
where
ra.WorkflowStepGUID = s.WorkflowStepGUID
and ra.PlanGUID = e.EntityGUID
and ra.UserGUID = u.UserGUID
)
and e.EntityGUID = @entityGUID
and s.WorkflowStepGUID = @wfStepGUID
GO
---------------------------------------------
-- dbo.sp_alterdiagram
CREATE PROCEDURE dbo.sp_alterdiagram
(
@diagramname sysname,
@owner_id int = null,
@version int,
@definition varbinary(max)
)
WITH EXECUTE AS 'dbo'
AS
BEGIN
set nocount on
declare @theId int
declare @retval int
declare @IsDbo int
declare @UIDFound int
declare @DiagId int
declare @ShouldChangeUID int
if(@diagramname is null)
begin
RAISERROR ('Invalid ARG', 16, 1)
return -1
end
execute as caller;
select @theId = DATABASE_PRINCIPAL_ID();
select @IsDbo = IS_MEMBER(N'db_owner');
if(@owner_id is null)
select @owner_id = @theId;
revert;
select @ShouldChangeUID = 0
select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname
if(@DiagId IS NULL or (@IsDbo = 0 and @theId <> @UIDFound))
begin
RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1);
return -3
end
if(@IsDbo <> 0)
begin
if(@UIDFound is null or USER_NAME(@UIDFound) is null) -- invalid principal_id
begin
select @ShouldChangeUID = 1 ;
end
end
-- update dds data
update dbo.sysdiagrams set definition = @definition where diagram_id = @DiagId ;
-- change owner
if(@ShouldChangeUID = 1)
update dbo.sysdiagrams set principal_id = @theId where diagram_id = @DiagId ;
-- update dds version
if(@version is not null)
update dbo.sysdiagrams set version = @version where diagram_id = @DiagId ;
return 0
END
GO
---------------------------------------------
-- dbo.sp_creatediagram
CREATE PROCEDURE dbo.sp_creatediagram
(
@diagramname sysname,
@owner_id int = null,
@version int,
@definition varbinary(max)
)
WITH EXECUTE AS 'dbo'
AS
BEGIN
set nocount on
declare @theId int
declare @retval int
declare @IsDbo int
declare @userName sysname
if(@version is null or @diagramname is null)
begin
RAISERROR (N'E_INVALIDARG', 16, 1);
return -1
end
execute as caller;
select @theId = DATABASE_PRINCIPAL_ID();
select @IsDbo = IS_MEMBER(N'db_owner');
revert;
if @owner_id is null
begin
select @owner_id = @theId;
end
else
begin
if @theId <> @owner_id
begin
if @IsDbo = 0
begin
RAISERROR (N'E_INVALIDARG', 16, 1);
return -1
end
select @theId = @owner_id
end
end
-- next 2 line only for test, will be removed after define name unique
if EXISTS(select diagram_id from dbo.sysdiagrams where principal_id = @theId and name = @diagramname)
begin
RAISERROR ('The name is already used.', 16, 1);
return -2
end
insert into dbo.sysdiagrams(name, principal_id , version, definition)
VALUES(@diagramname, @theId, @version, @definition) ;
select @retval = @@IDENTITY
return @retval
END
GO
---------------------------------------------
-- dbo.sp_drop_constraints
CREATE proc [dbo].[sp_drop_constraints]
@tablename sysname
as
-- name: sp_drop_constraints
-- author: douglas bass
-- date: 06/19/2000
-- sp_drop_constraints will drop all constraints on the specified table,
-- including CHECK, FOREIGN KEY, PRIMARY KEY, UNIQUE, and DEFAULT constraints.
-- Compile it in your master database and use it from any user database.
set nocount on
declare @constname sysname,
@cmd varchar(1024)
declare curs_constraints cursor LOCAL FAST_FORWARD for
select name
from sysobjects
where xtype in ('C', 'F', 'PK', 'UQ', 'D')
and (status & 64) = 0
and parent_obj = object_id(@tablename)
open curs_constraints
fetch next from curs_constraints into @constname
while (@@fetch_status = 0)
begin
select @cmd = 'ALTER TABLE ' + @tablename + ' DROP CONSTRAINT ' + @constname
exec(@cmd)
fetch next from curs_constraints into @constname
end
close curs_constraints
deallocate curs_constraints
return 0
GO
---------------------------------------------
-- dbo.sp_dropdiagram
CREATE PROCEDURE dbo.sp_dropdiagram
(
@diagramname sysname,
@owner_id int = null
)
WITH EXECUTE AS 'dbo'
AS
BEGIN
set nocount on
declare @theId int
declare @IsDbo int
declare @UIDFound int
declare @DiagId int
if(@diagramname is null)
begin
RAISERROR ('Invalid value', 16, 1);
return -1
end
EXECUTE AS CALLER;
select @theId = DATABASE_PRINCIPAL_ID();
select @IsDbo = IS_MEMBER(N'db_owner');
if(@owner_id is null)
select @owner_id = @theId;
REVERT;
select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname
if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId))
begin
RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1)
return -3
end
delete from dbo.sysdiagrams where diagram_id = @DiagId;
return 0;
END
GO
---------------------------------------------
-- dbo.sp_helpdiagramdefinition
CREATE PROCEDURE dbo.sp_helpdiagramdefinition
(
@diagramname sysname,
@owner_id int = null
)
WITH EXECUTE AS N'dbo'
AS
BEGIN
set nocount on
declare @theId int
declare @IsDbo int
declare @DiagId int
declare @UIDFound int
if(@diagramname is null)
begin
RAISERROR (N'E_INVALIDARG', 16, 1);
return -1
end
execute as caller;
select @theId = DATABASE_PRINCIPAL_ID();
select @IsDbo = IS_MEMBER(N'db_owner');
if(@owner_id is null)
select @owner_id = @theId;
revert;
select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname;
if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId ))
begin
RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1);
return -3
end
select version, definition FROM dbo.sysdiagrams where diagram_id = @DiagId ;
return 0
END
GO
---------------------------------------------
-- dbo.sp_helpdiagrams
CREATE PROCEDURE dbo.sp_helpdiagrams
(
@diagramname sysname = NULL,
@owner_id int = NULL
)
WITH EXECUTE AS N'dbo'
AS
BEGIN
DECLARE @user sysname
DECLARE @dboLogin bit
EXECUTE AS CALLER;
SET @user = USER_NAME();
SET @dboLogin = CONVERT(bit,IS_MEMBER('db_owner'));
REVERT;
SELECT
[Database] = DB_NAME(),
[Name] = name,
[ID] = diagram_id,
[Owner] = USER_NAME(principal_id),
[OwnerID] = principal_id
FROM
sysdiagrams
WHERE
(@dboLogin = 1 OR USER_NAME(principal_id) = @user) AND
(@diagramname IS NULL OR name = @diagramname) AND
(@owner_id IS NULL OR principal_id = @owner_id)
ORDER BY
4, 5, 1
END
GO
---------------------------------------------
-- dbo.sp_renamediagram
CREATE PROCEDURE dbo.sp_renamediagram
(
@diagramname sysname,
@owner_id int = null,
@new_diagramname sysname
)
WITH EXECUTE AS 'dbo'
AS
BEGIN
set nocount on
declare @theId int
declare @IsDbo int
declare @UIDFound int
declare @DiagId int
declare @DiagIdTarg int
declare @u_name sysname
if((@diagramname is null) or (@new_diagramname is null))
begin
RAISERROR ('Invalid value', 16, 1);
return -1
end
EXECUTE AS CALLER;
select @theId = DATABASE_PRINCIPAL_ID();
select @IsDbo = IS_MEMBER(N'db_owner');
if(@owner_id is null)
select @owner_id = @theId;
REVERT;
select @u_name = USER_NAME(@owner_id)
select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname
if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId))
begin
RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1)
return -3
end
-- if((@u_name is not null) and (@new_diagramname = @diagramname)) -- nothing will change
-- return 0;
if(@u_name is null)
select @DiagIdTarg = diagram_id from dbo.sysdiagrams where principal_id = @theId and name = @new_diagramname
else
select @DiagIdTarg = diagram_id from dbo.sysdiagrams where principal_id = @owner_id and name = @new_diagramname
if((@DiagIdTarg is not null) and @DiagId <> @DiagIdTarg)
begin
RAISERROR ('The name is already used.', 16, 1);
return -2
end
if(@u_name is null)
update dbo.sysdiagrams set [name] = @new_diagramname, principal_id = @theId where diagram_id = @DiagId
else
update dbo.sysdiagrams set [name] = @new_diagramname where diagram_id = @DiagId
return 0
END
GO
---------------------------------------------
-- dbo.sp_upgraddiagrams
CREATE PROCEDURE dbo.sp_upgraddiagrams
AS
BEGIN
IF OBJECT_ID(N'dbo.sysdiagrams') IS NOT NULL
return 0;
CREATE TABLE dbo.sysdiagrams
(
name sysname NOT NULL,
principal_id int NOT NULL, -- we may change it to varbinary(85)
diagram_id int PRIMARY KEY IDENTITY,
version int,
definition varbinary(max)
CONSTRAINT UK_principal_name UNIQUE
(
principal_id,
name
)
);
/* Add this if we need to have some form of extended properties for diagrams */
/*
IF OBJECT_ID(N'dbo.sysdiagram_properties') IS NULL
BEGIN
CREATE TABLE dbo.sysdiagram_properties
(
diagram_id int,
name sysname,
value varbinary(max) NOT NULL
)
END
*/
IF OBJECT_ID(N'dbo.dtproperties') IS NOT NULL
begin
insert into dbo.sysdiagrams
(
[name],
[principal_id],
[version],
[definition]
)
select
convert(sysname, dgnm.[uvalue]),
DATABASE_PRINCIPAL_ID(N'dbo'), -- will change to the sid of sa
0, -- zero for old format, dgdef.[version],
dgdef.[lvalue]
from dbo.[dtproperties] dgnm
inner join dbo.[dtproperties] dggd on dggd.[property] = 'DtgSchemaGUID' and dggd.[objectid] = dgnm.[objectid]
inner join dbo.[dtproperties] dgdef on dgdef.[property] = 'DtgSchemaDATA' and dgdef.[objectid] = dgnm.[objectid]
where dgnm.[property] = 'DtgSchemaNAME' and dggd.[uvalue] like N'_EA3E6268-D998-11CE-9454-00AA00A3F36E_'
return 2;
end
return 1;
END
GO
---------------------------------------------
---------------------------------------------
-- FUNCTIONS
---------------------------------------------
-- dbo.CSVGuidsToTable
CREATE FUNCTION [dbo].[CSVGuidsToTable]
(@CSVList varchar(max) )
RETURNS
@tPKList TABLE ( guid uniqueidentifier)
AS
BEGIN
/*
select * from dbo.[CSVGuidsToTable]('')
select * from dbo.[CSVGuidsToTable]('00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,')
select * from dbo.[CSVGuidsToTable]('00000000-0000-0000-0000-000000000000')
select * from dbo.[CSVGuidsToTable]('00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000')
DECLARE @list nvarchar(max)
SET @list = '00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,'
DECLARE @delimiter char(1)
SET @delimiter = ','
DECLARE @tbl TABLE (pos int IDENTITY(1, 1) NOT NULL, guid uniqueidentifier)
*/
DECLARE @CSVCte TABLE (startpos bigint, endpos bigint)
DECLARE @startpos bigint
SET @startpos = 1
DECLARE @endpos bigint
SET @endpos = CHARINDEX(',' , @CSVList + ',')
IF @endpos = 0 RETURN
INSERT INTO @CSVCte (startpos, endpos)
SELECT @startpos, @endpos
SET @startpos = @endpos + 1
SET @endpos = CHARINDEX(',', @CSVList + ',', @endpos + 1)
WHILE @endpos <> 0 BEGIN
INSERT INTO @CSVCte (startpos, endpos)
SELECT @startpos, @endpos
SET @startpos = @endpos + 1
SET @endpos = CHARINDEX(',', @CSVList + ',', @endpos + 1)
END
INSERT INTO @tPKList
SELECT cast(rtrim(ltrim(SUBSTRING(@CSVList, StartPos,EndPos-StartPos))) as uniqueidentifier) FROM @CSVCte WHERE endpos - startpos >= 36
RETURN
END
GO
---------------------------------------------
-- dbo.CapitalizeEachWord
CREATE FUNCTION [dbo].[CapitalizeEachWord](
@InputString varchar(8000)
)
RETURNS varchar(8000)
AS
BEGIN
declare @CurrentString varchar(8000);
declare @ReturnString varchar(8000);
set @ReturnString = '';
DECLARE BUILD CURSOR
FOR select Component from [dbo].[Split](@InputString, ' ')
Open BUILD
FETCH NEXT FROM BUILD INTO @CurrentString
WHILE (@@FETCH_STATUS <> - 1)
BEGIN
set @ReturnString = @ReturnString + upper(substring(@currentString,1,1)) + lower(substring(@currentString, 2, Len(@currentString))) + ' '
FETCH NEXT FROM BUILD INTO @CurrentString
END
set @ReturnString = RTRIM(@ReturnString)
CLOSE BUILD
DEALLOCATE BUILD
RETURN @ReturnString
END
GO
---------------------------------------------
-- dbo.ColumnExists
CREATE FUNCTION [dbo].[ColumnExists](
@SchemaName NVARCHAR(128),
@TableName NVARCHAR(MAX),
@ColumnName NVARCHAR(128)
)
RETURNS BIT--Returns 0 if column does not exist. Returns 1 if column exists.
AS
BEGIN
RETURN dbo.TableColumnExists(@SchemaName,@TableName,@columnname)
----See if the Table already contains the column.
--IF EXISTS
--(SELECT * FROM SysObjects O INNER JOIN SysColumns C ON O.ID=C.ID
--WHERE ObjectProperty(O.ID,'IsUserTable')=1
--AND O.Name=@TableName
--AND C.Name=@ColumnName)
--RETURN cast(1 as bit)
----Table does not contain the column.
--RETURN cast(0 as bit)
END
GO
---------------------------------------------
-- dbo.ColumnExistsByTableExpression
CREATE FUNCTION [dbo].[ColumnExistsByTableExpression](
@TableExpression NVARCHAR(MAX),
@ColumnName NVARCHAR(128)
)
RETURNS BIT--Returns 0 if column does not exist. Returns 1 if column exists.
AS
BEGIN
RETURN dbo.TableColumnExistsByTableExpression(@TableExpression,@columnname)
----See if the Table already contains the column.
--IF EXISTS
--(SELECT * FROM SysObjects O INNER JOIN SysColumns C ON O.ID=C.ID
--WHERE ObjectProperty(O.ID,'IsUserTable')=1
--AND O.Name=@TableName
--AND C.Name=@ColumnName)
--RETURN cast(1 as bit)
----Table does not contain the column.
--RETURN cast(0 as bit)
END
GO
---------------------------------------------
-- dbo.ConstraintExists
create function dbo.ConstraintExists(
@ConstraintName sysname
)
returns bit
AS
BEGIN
declare @returnVal bit;
set @returnVal = 0;
if (exists(select 1 from sys.sysconstraints sc where OBJECT_NAME(sc.constid) = @ConstraintName))
begin
set @returnVal = 1
end
return @returnVal;
END
GO
---------------------------------------------
-- dbo.ConvertCSGuidsToTable
CREATE FUNCTION [dbo].[ConvertCSGuidsToTable]
(@CSVList varchar(max), @delimiter char(1) = N',' )
RETURNS
@tPKList TABLE ( listpos int IDENTITY(1, 1) NOT NULL, guid uniqueidentifier)
AS
BEGIN
/*
select * from dbo.[ConvertCSGuidsToTable]('',',')
select * from dbo.[ConvertCSGuidsToTable]('00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,',',')
select * from dbo.[ConvertCSGuidsToTable]('00000000-0000-0000-0000-000000000000',',')
select * from dbo.[ConvertCSGuidsToTable]('00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000',',')
DECLARE @list nvarchar(max)
SET @list = '00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,'
DECLARE @delimiter char(1)
SET @delimiter = ','
DECLARE @tbl TABLE (pos int IDENTITY(1, 1) NOT NULL, guid uniqueidentifier)
*/
DECLARE @startpos bigint
SET @startpos = 1
DECLARE @endpos bigint
SET @endpos = CHARINDEX(@delimiter , @CSVList + @delimiter)
IF @endpos = 0 RETURN
IF @endpos - @startpos >= 36 BEGIN
INSERT INTO @tPKList (guid) values (cast(rtrim(ltrim(SUBSTRING(@CSVList, @StartPos,@EndPos-@StartPos))) as uniqueidentifier))
END
SET @startpos = @endpos + 1
SET @endpos = CHARINDEX(@delimiter, @CSVList + @delimiter, @endpos + 1)
WHILE @endpos <> 0 BEGIN
IF @endpos - @startpos >= 36 BEGIN
INSERT INTO @tPKList (guid) values (cast(rtrim(ltrim(SUBSTRING(@CSVList, @StartPos,@EndPos-@StartPos))) as uniqueidentifier))
END
SET @startpos = @endpos + 1
SET @endpos = CHARINDEX(@delimiter, @CSVList + @delimiter, @endpos + 1)
END
RETURN
END
GO
---------------------------------------------
-- dbo.ConvertCSValuesToTable
CREATE FUNCTION [dbo].[ConvertCSValuesToTable]
(@CSVList nvarchar(max), @delimiter char(1) = N',' )
RETURNS
@tPKList TABLE ( pos int IDENTITY(1, 1) NOT NULL, val nvarchar(max))
AS
BEGIN
/*
select * from dbo.[ConvertCSValuesToTable]('', ',')
select * from dbo.[ConvertCSValuesToTable]('00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,', ',')
select * from dbo.[ConvertCSValuesToTable]('00000000-0000-0000-0000-000000000000', ',')
select * from dbo.[ConvertCSValuesToTable]('00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000', ',')
DECLARE @list nvarchar(max)
SET @list = '00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,'
DECLARE @delimiter char(1)
SET @delimiter = ','
DECLARE @tbl TABLE (pos int IDENTITY(1, 1) NOT NULL, guid uniqueidentifier)
*/
DECLARE @startpos bigint
SET @startpos = 1
DECLARE @endpos bigint
SET @endpos = CHARINDEX(@delimiter , @CSVList + @delimiter)
IF @endpos = 0 RETURN
IF @endpos - @startpos >= 0 BEGIN
INSERT INTO @tPKList (val) values ( rtrim(ltrim(SUBSTRING(@CSVList, @StartPos,@EndPos-@StartPos))))
END
SET @startpos = @endpos + 1
SET @endpos = CHARINDEX(@delimiter, @CSVList + @delimiter, @endpos + 1)
WHILE @endpos <> 0 BEGIN
--INSERT INTO @CSVCte (startpos, endpos)
--SELECT @startpos, @endpos
IF @endpos - @startpos >= 0 BEGIN
INSERT INTO @tPKList (val) values ( rtrim(ltrim(SUBSTRING(@CSVList, @StartPos,@EndPos-@StartPos))))
END
SET @startpos = @endpos + 1
SET @endpos = CHARINDEX(@delimiter, @CSVList + @delimiter, @endpos + 1)
END
--SELECT rtrim(ltrim(SUBSTRING(@CSVList, StartPos,EndPos-StartPos))) FROM @CSVCte WHERE endpos - startpos >= 0
RETURN
END
GO
---------------------------------------------
-- dbo.ConvertEMFFormatToScore
CREATE function [dbo].[ConvertEMFFormatToScore](@EMFFormat as nvarchar(max))
returns nvarchar(max)
as
begin
Return CASE @EMFFormat
WHEN 'Percent 2' then '0.00%;(0.00%)'
WHEN 'Dollars (Actual) 2' then '$#,##0.00;($#,##0.00)'
WHEN 'Dollars (Thousands)' then '$#,##0;($#,##0)'
WHEN 'Dollars (Thousands) 0' then '$#,##0;($#,##0)'
WHEN 'Number 0' then '#,##0;(#,##0)'
WHEN 'Number 1' then '#,##0.0;(#,##0.0)'
WHEN 'Number 2' then '#,##0.00;(#,##0.00)'
ELSE @EMFFormat
END
END
GO
---------------------------------------------
-- dbo.DataIntegrationSchema
create function dbo.DataIntegrationSchema()
RETURNS sysname
BEGIN
return 'int';
END
GO
---------------------------------------------
-- dbo.Divide
CREATE function [dbo].[Divide] (@left float, @right decimal(38,15))
returns decimal(38,15)
as
begin
return cast((@left / @right) as decimal(38,15))
end
GO
---------------------------------------------
-- dbo.DivideSafely
Create FUNCTION [dbo].[DivideSafely](@numeratoramount float, @denominatoramount float, @isusingdenominator tinyint)
RETURNS float
AS
BEGIN
if (@numeratoramount is null) begin
return 0
end
if (@isusingdenominator = 0) begin
return @numeratoramount
end
if (@denominatoramount is null) or (@denominatoramount = 0) begin
return 0
end
return @numeratoramount / @denominatoramount
END
GO
---------------------------------------------
-- dbo.GUIDLEN
create function [dbo].[GUIDLEN]()
returns int
AS
BEGIN
declare @len int;
select @len = LEN(dbo.ZeroGUID());
return @len;
END
GO
---------------------------------------------
-- dbo.GetColumnDefaultValue
Create FUNCTION [dbo].[GetColumnDefaultValue](
@SchemaName NVARCHAR(128),
@TableName NVARCHAR(1000),
@ColumnName NVARCHAR(128)
)
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @DefaultValue AS NVARCHAR(4000)
SET @DefaultValue = NULL
SELECT @DefaultValue = COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @SchemaName
AND TABLE_NAME = @TableName
AND COLUMN_NAME = @ColumnName
IF @DefaultValue IS NOT NULL
BEGIN
--Trim out the leading '(' and trailing ')'
--Leading '('
SET @DefaultValue = REPLACE(REPLACE(LTrim(RTrim(REPLACE(REPLACE(@DefaultValue,' ','~'),'(',' '))),' ','('),'~',' ')
--Trailing ')'
SET @DefaultValue = REPLACE(REPLACE(LTrim(RTrim(REPLACE(REPLACE(@DefaultValue,' ','~'),')',' '))),' ',')'),'~',' ')
END
RETURN @DefaultValue
END
GO
---------------------------------------------
-- dbo.GetCurrentFiscalYear
create function [dbo].[GetCurrentFiscalYear]()
RETURNS char(4) as begin
DECLARE @RET AS CHAR(4)
SELECT @RET = CAST(YEAR(dbo.getfiscaldate(getdate())) AS CHAR(4))
return @RET
end
GO
---------------------------------------------
-- dbo.GetCurrentMonthAmount
create FUNCTION [dbo].GetCurrentMonthAmount
(
@currentMonthIndex tinyint,
@amount01 money,
@amount02 money,
@amount03 money,
@amount04 money,
@amount05 money,
@amount06 money,
@amount07 money,
@amount08 money,
@amount09 money,
@amount10 money,
@amount11 money,
@amount12 money
)
returns money with schemabinding
BEGIN
declare @amount money
if @currentMonthIndex = 1 set @amount = @amount01
if @currentMonthIndex = 2 set @amount = @amount02;
if @currentMonthIndex = 3 set @amount = @amount03;
if @currentMonthIndex = 4 set @amount = @amount04;
if @currentMonthIndex = 5 set @amount = @amount05;
if @currentMonthIndex = 6 set @amount = @amount06;
if @currentMonthIndex = 7 set @amount = @amount07;
if @currentMonthIndex = 8 set @amount = @amount08;
if @currentMonthIndex = 9 set @amount = @amount09;
if @currentMonthIndex = 10 set @amount = @amount10;
if @currentMonthIndex = 11 set @amount = @amount11;
if @currentMonthIndex = 12 set @amount = @amount12;
return @amount
END
GO
---------------------------------------------
-- dbo.GetDBSetting
CREATE FUNCTION [dbo].[GetDBSetting](@SettingName nvarchar(128))
RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @Value nvarchar(4000)
SET @Value = null
if exists(select 1 from dbsetting where name = @SettingName)
set @Value = (select setting from DBSetting where Name = @SettingName)
return @value
END
GO
---------------------------------------------
-- dbo.GetDataIntSectionAcceptedTableName
create function dbo.GetDataIntSectionAcceptedTableName(
@SectionId uniqueidentifier
)
returns varchar(max)
BEGIN
return dbo.SanitizeNonDelimitedIdentifier('Import_' + cast(@SectionId as nvarchar(36)) + '_Accepted');
END
GO
---------------------------------------------
-- dbo.GetDataIntSectionAcceptedViewName
create function dbo.GetDataIntSectionAcceptedViewName(
@SectionName nvarchar(128),
@SectionId uniqueidentifier
)
returns varchar(max)
BEGIN
return dbo.SanitizeNonDelimitedIdentifier('viewImport_' + @SectionName + '_' + cast(@SectionId as nvarchar(36)) + '_Accepted');
END
GO
---------------------------------------------
-- dbo.GetDataIntSectionRejectedTableName
create function dbo.GetDataIntSectionRejectedTableName(
@SectionId uniqueidentifier
)
returns varchar(max)
BEGIN
return dbo.SanitizeNonDelimitedIdentifier('Import_' + cast(@SectionId as nvarchar(36)) + '_Rejected');
END
GO
---------------------------------------------
-- dbo.GetDataIntSectionRejectedViewName
CREATE function dbo.GetDataIntSectionRejectedViewName(
@SectionName nvarchar(128),
@SectionId uniqueidentifier
)
returns varchar(max)
BEGIN
return dbo.SanitizeNonDelimitedIdentifier('viewImport_' + @SectionName + '_' + cast(@SectionId as nvarchar(36)) + '_Rejected');
END
GO
---------------------------------------------
-- dbo.GetDaysInMonth
CREATE FUNCTION [dbo].[GetDaysInMonth] ( @pDate DATETIME )
RETURNS INT
with schemabinding
AS
BEGIN
--SET @pDate = CONVERT(VARCHAR(10), @pDate, 101)
SET @pDate = dateadd(d, 1 - DAY(@pDate),@pdate)
RETURN DATEDIFF(DD, @pDate, DATEADD(MM, 1, @pDate))
END
GO
---------------------------------------------
-- dbo.GetDaysInMonthsLoaded
CREATE FUNCTION [dbo].[GetDaysInMonthsLoaded] (@fiscalYearID int)
RETURNS INT
AS
BEGIN
RETURN
(SELECT SUM(VALUE)
FROM [client].[viewFactWorkingHoursPerMonthUnpivoted] wh
INNER JOIN [fw].[DimFiscalMonth] fm ON fm.FiscalMonthID = wh.FiscalMonthID
WHERE FiscalYearID = @FiscalYearID
AND fm.SortOrder <= (SELECT CAST(Setting AS int) FROM [dbo].[DBSetting] WHERE Name = 'OB_Months_Loaded'))
END
GO
---------------------------------------------
-- dbo.GetDefaultConstraintName
CREATE FUNCTION [dbo].[GetDefaultConstraintName](
@SQLSchemaName nvarchar(128),
@SQLObjectName nvarchar(128),
@ColumnName NVARCHAR(128)
)
returns nvarchar(128)
AS
BEGIN
return [dbo].[GetDefaultConstraintNameByTableExpression](@SQLSchemaName + '.' + @SQLObjectName, @ColumnName);
END
GO
---------------------------------------------
-- dbo.GetDefaultConstraintNameByTableExpression
CREATE FUNCTION [dbo].[GetDefaultConstraintNameByTableExpression](
@SQLObjectExpression VARCHAR(MAX),
@ColumnName NVARCHAR(128)
)
returns nvarchar(128)
AS
BEGIN
declare @defConstraint nvarchar(128);
select top 1 @defConstraint = c.name from sys.default_constraints c
inner join sys.columns col on col.default_object_id = c.object_id
inner join sys.objects o on o.object_id = c.parent_object_id
inner join sys.schemas s on s.schema_id = o.schema_id
where ('[' + s.name + '].[' + o.name + ']') = @SQLObjectExpression
and col.name = @ColumnName
if (@defConstraint is null)
begin
select top 1 @defConstraint = c.name from sys.default_constraints c
inner join sys.columns col on col.default_object_id = c.object_id
inner join sys.objects o on o.object_id = c.parent_object_id
inner join sys.schemas s on s.schema_id = o.schema_id
where (s.name + '.' + o.name) = @SQLObjectExpression
and col.name = @ColumnName
end
return @defConstraint;
END
GO
---------------------------------------------
-- dbo.GetDepreciationPart
CREATE FUNCTION [dbo].[GetDepreciationPart](
@amount money
,@amountYear int
,@usefulLife int
,@inserviceYear int
,@inserviceMonth int
,@resultYear int
)
RETURNS Money
AS
BEGIN
if @amountYear > @inserviceYear set @inserviceYear = @amountYear
if @resultYear < @inserviceYear begin
return 0
end
if @resultYear > @inserviceYear + @usefulLife begin
return 0
end
declare @firstYearMonths int
set @firstYearMonths = 12 - @inserviceMonth
declare @lastYearMonths int
set @lastYearMonths = 12 - @firstYearMonths
declare @yearlyAmount money
set @yearlyAmount = @amount / @usefulLife
if @resultYear = @inserviceYear begin
--handle first year
--set @result = (@firstYearMonths / 12.0) * @yearlyAmount
return (@firstYearMonths / 12.0) * @yearlyAmount
end
if @resultYear = @inserviceYear + @usefulLife begin
--handle last year
--set @result = (@lastYearMonths / 12.0) * @yearlyAmount
return (@lastYearMonths / 12.0) * @yearlyAmount
end
return @yearlyAmount
end
GO
---------------------------------------------
-- dbo.GetDirectoryCacheName
CREATE function [dbo].[GetDirectoryCacheName](@plantypeguid as uniqueidentifier)
returns nvarchar(max)
as
begin
declare @plantypename nvarchar(128)
declare @tablename nvarchar(max)
set @plantypename = (select name from PlanType where PlanTypeGUID=@planTypeGUID)
set @tablename = 'data.DirectoryCache_' + replace(replace(replace(@plantypename, ' ', ''), '-', ''), '.', '')
return @tablename
end
GO
---------------------------------------------
-- dbo.GetEscapedString
CREATE function [dbo].[GetEscapedString] (
@expression varchar(max)
)
returns varchar(max)
AS
BEGIN
declare @ret varchar(max);
set @ret = replace(replace(replace(replace(replace(@expression,'''',''),']',''),'[',''),'(',''),')','');
return @ret;
END
GO
---------------------------------------------
-- dbo.GetEventVersion
create FUNCTION [dbo].[GetEventVersion](
@EventName varchar(64)
)
RETURNS varbinary(8)
AS
BEGIN
declare @ret timestamp
select @ret = version from event where eventname = @eventname
if @ret is null set @ret = 0
return @ret
end
GO
---------------------------------------------
-- dbo.GetFillinMembersPastMaxIndex
CREATE FUNCTION [dbo].[GetFillinMembersPastMaxIndex]
(@modelGUID uniqueidentifier, @placeholderDimensionGUID uniqueidentifier, @maxIndex int)
RETURNS
@fillInMemberGUIDS TABLE ( guid uniqueidentifier)
AS
BEGIN
--declare @modelGUID uniqueidentifier
--declare @structureDimensionGUID as uniqueidentifier --ph
--declare @maxIndex int
--set @structureDimensionGUID = '17FEAA4B-A2A2-4353-B081-03E3DFB5CB77'
--set @modelGUID = '9C5BFBD1-4DF4-4223-B4C3-D013809261AC'
----select dbo.getModelFirstFillIn(@modelguid, @structuredimensionguid)
--set @maxIndex = 1
--declare @minIndex int
--delete fillins past index @maxIndex
insert into @fillinMemberGUIDs
select
FilledInMemberGUID
FROM
(
select
--modelguid,dbo.getplanname(modelguid),
row_number() over (order by slm.sortorderfullpath) as RowNum,
FilledInMemberGUID
from
EMFFillIn fi
inner join securelistmember slm on fi.PlaceholderMemberGUID = slm.listmemberguid
where
PlaceholderMemberGUID in
( select slm.listmemberguid
from securelistmember slm
where slm.listguid = @placeholderDimensionGUID
)
and ModelGUID = @modelGUID
) FillIns
WHERE
RowNum > @MaxIndex
RETURN
END
GO
---------------------------------------------
-- dbo.GetFiscalDate
CREATE FUNCTION [dbo].[GetFiscalDate](
@NonFiscalDate datetime
)
RETURNS DATETIME--Returns 0 if column does not exist. Returns 1 if column exists.
AS
BEGIN
--See if the Table already contains the column.
declare @yeday varchar(2)
select @yeday = setting from dbsetting where name = 'GENERAL_FISCALYEARENDDAY'
declare @yemonth varchar(2)
select @yemonth = setting from dbsetting where name = 'GENERAL_FISCALYEARENDMONTH'
--set @yemonth = '04'
--set @yeday = '30'
declare @yedate datetime
set @yedate = @yemonth + '/' + @yeday + '/' + cast(year(@NonFiscalDate) as varchar(4))
if datediff(dd, @yedate, @NonFiscalDate) > = 1 begin
return dateadd(yy,1,@NonFiscalDate)
end else begin
return @NonFiscalDate
end
--needed because functions are weird
return @NonFiscalDate
end
--Table does not contain the column.
GO
---------------------------------------------
-- dbo.GetFiscalDateNow
create function dbo.GetFiscalDateNow()
RETURNS DATETIME as begin
return dbo.getfiscaldate(getdate())
end
GO
---------------------------------------------
-- dbo.GetFiscalStartMonth
CREATE FUNCTION dbo.GetFiscalStartMonth()
RETURNS int
AS
BEGIN
DECLARE @fiscalYearEndMonth INT;
DECLARE @fiscalYearStartMonth INT;
SET @fiscalYearEndMonth = CAST(dbo.GetDBSetting('GENERAL_FISCALYEARENDMONTH') AS INT);
IF @fiscalYearEndMonth = 12
BEGIN
SET @fiscalYearStartMonth = 1;
END
ELSE
BEGIN
SET @fiscalYearStartMonth = @fiscalYearEndMonth + 1;
END
RETURN @fiscalYearStartMonth
END;
GO
---------------------------------------------
-- dbo.GetFiscalYearEndDate
CREATE FUNCTION dbo.GetFiscalYearEndDate()
RETURNS Date
AS
BEGIN
DECLARE @EndDate DATE;
SET @EndDate = CONVERT(DATE, dbo.GetCurrentFiscalYear() + '/'+ dbo.GetDBSetting('GENERAL_FISCALYEARENDMONTH') + '/' +dbo.GetDBSetting('GENERAL_FISCALYEARENDDAY') );
RETURN @EndDate
END;
GO
---------------------------------------------
-- dbo.GetFiscalYearForDate
CREATE FUNCTION [dbo].[GetFiscalYearForDate](@TestDate datetime)
RETURNS int
AS
BEGIN
declare @yeday varchar(2)
select @yeday = setting from dbsetting where name = 'GENERAL_FISCALYEARENDDAY'
declare @yemonth varchar(2)
select @yemonth = setting from dbsetting where name = 'GENERAL_FISCALYEARENDMONTH'
declare @FiscalYear int
set @FiscalYear = (Select
(CASE WHEN (DATEPART(month, @TestDate) = @yemonth) THEN
(CASE WHEN (DATEPART(day, @TestDate) > @yeday)
THEN (DATEPART(year, @TestDate) + 1)
ELSE (DATEPART(year, @TestDate)) END)
ELSE (CASE WHEN (DATEPART(month, @TestDate)
> @yemonth) THEN (DATEPART(year, @TestDate) + 1) ELSE (DATEPART(year, @TestDate)) END) END) AS FiscalYear)
return @FiscalYear
END
GO
---------------------------------------------
-- dbo.GetFiscalYearStartDate
CREATE FUNCTION dbo.GetFiscalYearStartDate()
RETURNS Date
AS
BEGIN
DECLARE @StartDate DATE;
SET @StartDate = DATEADD(DAY, 1, DATEADD(YEAR, -1, dbo.GetFiscalYearEndDate()));
RETURN @StartDate
END;
GO
---------------------------------------------
-- dbo.GetFolderFullPath
create function GetFolderFullPath(@folderguid as uniqueidentifier)
returns nvarchar(max)
as
begin
--declare @folderguid uniqueidentifier
--set @folderguid = '2DF3FEF0-A8BE-4975-95AE-8A88821D691B'
declare @parentfolderguid uniqueidentifier
declare @folderfound bit
declare @fullpath nvarchar(max)
select @fullpath = name, @folderfound = 1, @parentfolderguid = parentfolderguid from folder where folderguid = @folderguid
declare @currentfoldername nvarchar(450)
while @folderfound = 1 begin
set @folderfound = 0
select @currentfoldername = name, @folderfound = 1, @parentfolderguid = parentfolderguid from folder where folderguid = @parentfolderguid
if @folderfound = 1 begin
set @fullpath = @currentfoldername + '\' + @fullpath
end
end
return @fullpath
end
GO
---------------------------------------------
-- dbo.GetFolderFullPathGUID
create function [dbo].[GetFolderFullPathGUID](@folderguid as uniqueidentifier)
returns nvarchar(max)
as
begin
--declare @folderguid uniqueidentifier
--set @folderguid = '2DF3FEF0-A8BE-4975-95AE-8A88821D691B'
declare @parentfolderguid uniqueidentifier
declare @folderfound bit
declare @fullpath nvarchar(max)
select @fullpath = cast(folderguid as varchar(36)), @folderfound = 1, @parentfolderguid = parentfolderguid from folder where folderguid = @folderguid
declare @currentfoldername varchar(36)
while @folderfound = 1 begin
set @folderfound = 0
select @currentfoldername = cast(folderguid as varchar(36)), @folderfound = 1, @parentfolderguid = parentfolderguid from folder where folderguid = @parentfolderguid
if @folderfound = 1 begin
set @fullpath = @currentfoldername + '\' + @fullpath
end
end
return @fullpath
end
GO
---------------------------------------------
-- dbo.GetFolderGUID
CREATE function [dbo].[GetFolderGUID](@fullpath as nvarchar(max))
returns uniqueidentifier
as
begin
declare @folderguid As uniqueidentifier
set @folderguid = (select folderguid from folder where dbo.getfolderfullpath(folderguid) = cast('CHW\' + Left(@fullpath,Len(@fullpath) - 1) as nvarchar(Max)))
If (@folderguid is null)
set @folderguid = '00000000-0000-0000-0000-000000000000'
return @folderguid
end
GO
---------------------------------------------
-- dbo.GetFolderName
Create function [dbo].[GetFolderName](@folderguid as uniqueidentifier)
returns nvarchar(450)
as
begin
declare @foldername As nvarchar(450)
set @foldername = (select name from folder where folderguid = @folderguid)
return @foldername
end
GO
---------------------------------------------
-- dbo.GetFolderSortorderFullPath
CREATE function [dbo].[GetFolderSortorderFullPath](@folderguid as uniqueidentifier)
returns nvarchar(max)
as
begin
/*
select dbo.GetFolderSortorderFullPath(folderguid),* from folder where foldersetguid = 'BFB042E0-119C-4CFB-9C65-787275EEDB93' order by dbo.[GetFolderSortorderFullPath](folderguid)
*/
--declare @folderguid uniqueidentifier
--set @folderguid = '2DF3FEF0-A8BE-4975-95AE-8A88821D691B'
declare @parentfolderguid uniqueidentifier
declare @folderfound bit
declare @fullpath nvarchar(max)
select @fullpath = replace(space(10 - len(cast(displayorder as varchar(max)))) + cast(displayorder as varchar(max)),' ','0'), @folderfound = 1, @parentfolderguid = parentfolderguid from folder where folderguid = @folderguid
declare @currentfoldername nvarchar(450)
while @folderfound = 1 begin
set @folderfound = 0
select @currentfoldername = replace(space(10 - len(cast(displayorder as varchar(max)))) + cast(displayorder as varchar(max)),' ','0'), @folderfound = 1, @parentfolderguid = parentfolderguid from folder where folderguid = @parentfolderguid
if @folderfound = 1 begin
set @fullpath = @currentfoldername + '\' + @fullpath
end
end
return @fullpath
end
--select replace(space(5 - len(cast(displayorder as varchar(max)))) + cast(displayorder as varchar(max)),' ','0') from folder
GO
---------------------------------------------
-- dbo.GetFoldersRecursive
CREATE FUNCTION [dbo].[GetFoldersRecursive]
(@folderguid uniqueidentifier)
RETURNS
@folderguids TABLE ( guid uniqueidentifier)
AS
BEGIN
/*
select * from dbo.GetFoldersRecursive('2F4DEF7F-26F4-41AD-9A6E-8570A3AE78B9')
*/
DECLARE @ISDELETED bit
SELECT @ISDELETED = COALESCE(ISDELETEDFOLDER, CAST(0 AS BIT)) FROM FOLDER WHERE FOLDERGUID = @folderguid
INSERT INTO @folderguids
SELECT FOLDERGUID FROM FOLDER WHERE FOLDERGUID = @folderguid
WHILE @@ROWCOUNT > 0 BEGIN
INSERT INTO @folderguids
SELECT FOLDERGUID FROM FOLDER WHERE ISDELETEDFOLDER = @ISDELETED AND PARENTFOLDERGUID IN (select guid from @folderguids) AND NOT FOLDERGUID IN (select guid from @folderguids)
END
RETURN
END
GO
---------------------------------------------
-- dbo.GetFormFieldGUID
CREATE function [dbo].[GetFormFieldGUID](@aFormFieldName as nvarchar(64)) returns uniqueidentifier
as
BEGIN
declare @ret as uniqueidentifier
select top 1 @ret = formfieldguid from feformfield where name like @aFormFieldName
return @ret
END
GO
---------------------------------------------
-- dbo.GetFormFieldTypeColumn
CREATE function [dbo].[GetFormFieldTypeColumn](@aFormFieldType as int) returns varchar(64)
as
BEGIN
declare @ret as varchar(64)
select @ret = case
when @aFormFieldType = 1 then 'ValueFloat'
when @aFormFieldType = 2 then 'ValueFloat'
when @aFormFieldType = 3 then 'ValueFloat'
when @aFormFieldType = 5 then 'ValueDate'
when @aFormFieldType = 12 then 'ValueBit'
when @aFormFieldType = 15 then 'ValueBit'
else 'ValueVarChar' end
return @ret
END
GO
---------------------------------------------
-- dbo.GetFormFieldValue
CREATE function [dbo].[GetFormFieldValue](@aFormFieldGUID as uniqueidentifier, @aPlanGUID as uniqueidentifier) returns varchar(Max)
as
BEGIN
declare @ret as varchar(Max)
select top 1 @ret = valuevarchar from feformdata where feformdata.entityguid = @aPlanGUID AND formfieldguid = @aFormFieldGUID
return @ret
END
GO
---------------------------------------------
-- dbo.GetHangfireApiEndpoint
CREATE
FUNCTION [dbo].[GetHangfireApiEndpoint]()
RETURNS varchar(200)
AS
BEGIN
DECLARE @domain nvarchar(100);
SELECT @domain = [ds].[Setting]
FROM [dbo].[DBSetting] AS [ds]
WHERE [ds].[Name] = 'SECURITY_TA_IMPERSONATE_DOMAIN';
------- Declare the return variable here
DECLARE @smc varchar(50),
@appVersion varchar(20);
SELECT @smc = [Setting]
FROM [dbo].[DBSetting]
WHERE [Name] = 'SMC_PRIMARY_DATABASE';
SELECT @appVersion = REPLACE([ds].[Setting], '.', '')
FROM [dbo].[DBSetting] AS [ds]
WHERE [ds].[Name] = 'GENERAL_APPVERSION';
IF @domain IS NOT NULL AND @domain = 'strataeudev'
BEGIN
RETURN 'https://deuw1websrv-01.ad.strataeudev.net/HangfireManagement' + @appVersion + '/api';
END;
DECLARE @apiEnpoint varchar(100);
SELECT @apiEnpoint = CASE @smc
WHEN 'smc dev' THEN 'https://hangfire-dev.sdt.local/HangfireManagement'
WHEN 'smc qa' THEN 'https://qoakwebsrv01.sdt.local/HangfireManagement'
WHEN 'smc training' THEN 'https://noakwebsrv01.sdt.local/HangfireManagement'
WHEN 'smc prod' THEN 'https://hangfire-prod.sdt.local/HangfireManagement'
WHEN 'smc dr' THEN 'https://hangfire-dr.sdt.local/HangfireManagement'
ELSE ''
END;
RETURN @apiEnpoint + @appVersion + '/api';
END;
GO
---------------------------------------------
-- dbo.GetHashedPassword
CREATE function [dbo].[GetHashedPassword](@userguid as uniqueidentifier, @pw as varchar(max)) returns varchar(max)
as
BEGIN
declare @ret as varchar(max)
declare @converter as xml
set @ret = @pw + lower(cast(@userguid as varchar(36))) + 'Strata Decision Technology SDT'
declare @i int
set @i = 0
while @i <100001 begin
set @converter = (SELECT HASHBYTES('SHA1',@ret) as "T" FOR XML RAW, BINARY BASE64, TYPE)
select @ret = @converter.value('row[1]/@T', 'varchar(max)')
set @i = @i + 1
end
return @ret
END
GO
---------------------------------------------
-- dbo.GetImageColumnHTML
CREATE FUNCTION dbo.GetImageColumnHTML
(
@imgurl varchar(128),
@value varchar(64)
)
RETURNS varchar(400)
AS
BEGIN
declare @result varchar(400)
select @result = '
' + @value + '
'
return @result
END
GO
---------------------------------------------
-- dbo.GetInsertCommandForDataDictionaryFieldValueExample
-- =============================================
-- Author: Yaroslav Dembitskyi
-- Create date: 7/20/2017
-- Description: Generates insert command for score item to populate DataDictionary
-- =============================================
CREATE FUNCTION [dbo].[GetInsertCommandForDataDictionaryFieldValueExample]
(
@scoreGuid uniqueidentifier,
@columnName nvarchar(128),
@schemaName nvarchar(128),
@objectName nvarchar(128),
@columnType tinyint,
@idColumnName nvarchar(128) = null
)
RETURNS nvarchar(max)
AS
BEGIN
if([dbo].ColumnExists(@schemaName, @objectName, @columnName) = 0)
BEGIN
return ''
END
declare @result nvarchar(max)
declare @fromWhereClause nvarchar(max) = ' from [' + @schemaName + '].[' + @objectName + '] where CONVERT(NVARCHAR(4000),[' + @columnName + ']) <> '''' '
declare @scoreGuidAsText nvarchar(50) = CONVERT(NVARCHAR(50), @scoreGuid)
if(@idColumnName is not null AND [dbo].ColumnExists(@schemaName, @objectName, @idColumnName) = 1 AND
(select DATA_TYPE from INFORMATION_SCHEMA.COLUMNS IC where TABLE_NAME = @objectName and TABLE_SCHEMA=@schemaName and COLUMN_NAME = @idColumnName) like '%int')
BEGIN
set @fromWhereClause = @fromWhereClause + ' and [' + @idColumnName + '] <> 0 '
END
IF(TYPE_NAME(@columnType) = 'bit')
BEGIN
set @result = 'insert into [dbo].[DataDictionaryFieldValueExample] (ScoreGUID, ExampleValue) values (''' + @scoreGuidAsText + ''', ''True/False'')'
END
ELSE IF (TYPE_NAME(@columnType) = 'datetime' OR TYPE_NAME(@columnType) = 'datetime2' OR TYPE_NAME(@columnType) = 'smalldatetime')
BEGIN
set @result = 'insert into [dbo].[DataDictionaryFieldValueExample] (ScoreGUID, ExampleValue) select top 1 ''' + @scoreGuidAsText + ''',
CONVERT(CHAR(10), ['+ @columnName + '], 103) + SUBSTRING(CONVERT(varchar, [' + @columnName + '], 0),12, 8) ' + @fromWhereClause
END
ELSE
BEGIN
set @result = 'insert into [dbo].[DataDictionaryFieldValueExample] (ScoreGUID, ExampleValue) select top 1 ''' + @scoreGuidAsText + ''',
CONVERT(NVARCHAR(4000),['+ @columnName + '])' + @fromWhereClause
END
return @result
END
GO
---------------------------------------------
-- dbo.GetLastFiscalYearEndDate
CREATE FUNCTION dbo.GetLastFiscalYearEndDate()
RETURNS Date
AS
BEGIN
DECLARE @EndDate DATE;
DECLARE @CurrentFiscalYearEndDate DATE;
SET @CurrentFiscalYearEndDate = CONVERT(DATE, dbo.GetCurrentFiscalYear() + '/'+ dbo.GetDBSetting('GENERAL_FISCALYEARENDMONTH') + '/' +dbo.GetDBSetting('GENERAL_FISCALYEARENDDAY') );
SET @EndDate = DATEADD(YEAR, -1, @CurrentFiscalYearEndDate);
RETURN @EndDate
END;
GO
---------------------------------------------
-- dbo.GetLastFiscalYearStartDate
CREATE FUNCTION dbo.GetLastFiscalYearStartDate()
RETURNS Date
AS
BEGIN
DECLARE @StartDate DATE;
SET @StartDate = DATEADD(DAY, 1, DATEADD(YEAR, -1, dbo.GetLastFiscalYearEndDate()));
RETURN @StartDate
END;
GO
---------------------------------------------
-- dbo.GetLinkedServerDefinition
CREATE FUNCTION [dbo].[GetLinkedServerDefinition]()
returns nvarchar(512)
AS
BEGIN
declare @retval nvarchar(512)
select @retval = '[' + @@ServerName + '].[' + db_Name() + ']'
return @retval
END
GO
---------------------------------------------
-- dbo.GetMainFolderSetGUID
create function GetMainFolderSetGUID() returns uniqueidentifier
as
BEGIN
declare @ret as uniqueidentifier
select @ret = foldersetguid from folderset where type = 1
return @ret
END
GO
---------------------------------------------
-- dbo.GetModelDependencyTree
CREATE FUNCTION [dbo].[GetModelDependencyTree]
(@ModelGUID uniqueidentifier, @MaxRecursionLevel int)
RETURNS
@ModelTree TABLE ( [ModelGUID] uniqueidentifier, [Level] int)
AS
BEGIN
declare @Level int;
declare @Counter int;
set @Level = 0;
set @Counter = 1;
declare @Models TABLE
(
ModelGUID uniqueidentifier,
ParentModelGUID uniqueidentifier,
[Level] int,
unique clustered (ModelGUID, ParentModelGUID, [Level])
)
declare @UsedParents TABLE
(
ModelGUID uniqueidentifier primary key clustered
)
--Base Query
insert into @Models select @ModelGUID, @ModelGUID, @Level;
insert into @UsedParents select @ModelGUID
set @Level=@Level+1;
insert into @Models
select distinct ModelGUID, ParentModelGUID, @Level from dbo.viewModelDependencies
where ParentModelGUID = @ModelGUID and ModelGUID <> @ModelGUID
-- Begin Recursion
WHILE @@ROWCOUNT > 0
BEGIN
--handle max recursion
if (@Counter > @MaxRecursionLevel)
BEGIN
BREAK;
END
--update state
set @Level = @Level + 1;
insert into @UsedParents
select distinct M.ModelGUID from @Models M
where not exists(select 1 from @UsedParents where ModelGUID = M.ModelGUID) and M.MODELGUID <> null
--recursive query
insert into @Models
select DISTINCT NEW.ModelGUID, NEW.ParentModelGUID, @Level from viewModelDependencies NEW
left join @Models OLD on OLD.ModelGUID = NEW.ParentModelGUID
where not exists (select 1 from @UsedParents where ModelGUID = NEW.ParentModelGUID)
and NEW.ModelGUID <> NEW.ParentModelGUID and OLD.MODELGUID <> null
set @Counter = @Counter + 1;
END
insert into @ModelTree select distinct ModelGUID, [Level] from @Models order by [Level] DESC
return
END
GO
---------------------------------------------
-- dbo.GetModelFirstFillIn
CREATE function [dbo].[GetModelFirstFillIn](@modelGUID as uniqueidentifier, @structureDimensionGUID as uniqueidentifier)
returns uniqueidentifier
as
begin
/*
declare @modelGUID uniqueidentifier
declare @structureDimensionGUID as uniqueidentifier --ph
declare @maxIndex int
set @structureDimensionGUID = '17FEAA4B-A2A2-4353-B081-03E3DFB5CB77'
set @modelGUID = '9C5BFBD1-4DF4-4223-B4C3-D013809261AC'
select dbo.getModelFirstFillIn(@modelguid, @structuredimensionguid)
*/
--delete fillins past index @maxIndex
declare @out uniqueidentifier
select top 1
@out = FilledInMemberGUID
FROM
(
select
--modelguid,dbo.getplanname(modelguid),
row_number() over (order by slm.sortorderfullpath) as RowNum,
FilledInMemberGUID
from
EMFFillIn fi
inner join securelistmember slm on fi.PlaceholderMemberGUID = slm.listmemberguid
where
(
PlaceholderMemberGUID in
( select listmemberguid
from securelistmember
where listguid = @structureDimensionGUID
) or
FilledInMemberGUID in
( select listmemberguid
from securelistmember
where listguid = @structureDimensionGUID
)
)
and ModelGUID = @modelGUID
) FillIns
ORDER BY RowNum
if @out is null set @out = '00000000-0000-0000-0000-000000000000'
return @out
end
GO
---------------------------------------------
-- dbo.GetModelFirstFillInSection
create function [dbo].[GetModelFirstFillInSection](@modelGUID as uniqueidentifier, @PHSectionGUID as uniqueidentifier)
returns uniqueidentifier
as
begin
/*
declare @modelGUID uniqueidentifier
declare @structureDimensionGUID as uniqueidentifier --ph
declare @maxIndex int
set @structureDimensionGUID = '17FEAA4B-A2A2-4353-B081-03E3DFB5CB77'
set @modelGUID = '9C5BFBD1-4DF4-4223-B4C3-D013809261AC'
select dbo.getModelFirstFillIn(@modelguid, @structuredimensionguid)
*/
--delete fillins past index @maxIndex
declare @out uniqueidentifier
select top 1
@out = FilledInMemberGUID
FROM
(
select
--modelguid,dbo.getplanname(modelguid),
row_number() over (order by slm.sortorderfullpath) as RowNum,
FilledInMemberGUID
from
EMFFillIn fi
inner join securelistmember slm on fi.PlaceholderMemberGUID = slm.listmemberguid
where
(
PlaceholderMemberGUID in
( select listmemberguid
from securelistmember
where parentlistmemberguid = @PHSectionGUID
)
--FilledInMemberGUID in
-- ( select listmemberguid
-- from securelistmember
-- where listguid = @structureDimensionGUID
-- )
)
and ModelGUID = @modelGUID
) FillIns
ORDER BY RowNum
if @out is null set @out = '00000000-0000-0000-0000-000000000000'
return @out
end
GO
---------------------------------------------
-- dbo.GetModelLastFillInIndex
CREATE function [dbo].[GetModelLastFillInIndex](@modelGUID as uniqueidentifier, @structureDimensionGUID as uniqueidentifier)
returns bigint
as
begin
/*
declare @modelGUID uniqueidentifier
declare @structureDimensionGUID as uniqueidentifier --ph
declare @maxIndex int
set @structureDimensionGUID = '17FEAA4B-A2A2-4353-B081-03E3DFB5CB77'
set @modelGUID = '9C5BFBD1-4DF4-4223-B4C3-D013809261AC'
select dbo.getModelFirstFillIn(@modelguid, @structuredimensionguid)
*/
--delete fillins past index @maxIndex
declare @out bigint
select top 1
@out = RowNum -1
FROM
(
select
--modelguid,dbo.getplanname(modelguid),
row_number() over (order by slm.sortorderfullpath) as RowNum,
FilledInMemberGUID
from
EMFFillIn fi
inner join securelistmember slm on fi.PlaceholderMemberGUID = slm.listmemberguid
where
PlaceholderMemberGUID in
( select slm.listmemberguid
from securelistmember slm
where slm.listguid = @structureDimensionGUID
)
and ModelGUID = @modelGUID
) FillIns
ORDER BY RowNum desc
if @out is null set @out = 0
return @out
end
GO
---------------------------------------------
-- dbo.GetModelLastFillInIndexSection
CREATE function [dbo].[GetModelLastFillInIndexSection](@modelGUID as uniqueidentifier, @SectionmemberGUID as uniqueidentifier)
returns bigint
as
begin
/*
declare @modelGUID uniqueidentifier
declare @structureDimensionGUID as uniqueidentifier --ph
declare @maxIndex int
set @structureDimensionGUID = '17FEAA4B-A2A2-4353-B081-03E3DFB5CB77'
set @modelGUID = '9C5BFBD1-4DF4-4223-B4C3-D013809261AC'
select dbo.getModelFirstFillIn(@modelguid, @structuredimensionguid)
*/
--delete fillins past index @maxIndex
declare @out bigint
select
@out = count(*) -1
from
EMFFillIn fi
inner join securelistmember slm on fi.PlaceholderMemberGUID = slm.listmemberguid
where
slm.parentlistmemberguid = @SectionmemberGUID
and ModelGUID = @modelGUID
if @out is null set @out = 0
return @out
end
GO
---------------------------------------------
-- dbo.GetPlanGUID
CREATE function [dbo].[GetPlanGUID](@aPlanName as nvarchar(max)) returns uniqueidentifier
as
BEGIN
declare @ret as uniqueidentifier
select top 1 @ret = planguid from xplan where dbo.getplanname(planguid) like @aPlanName
return @ret
END
GO
---------------------------------------------
-- dbo.GetPlanLastModified
CREATE function [dbo].[GetPlanLastModified](@PLANGUID as uniqueidentifier) returns nvarchar(450)
as
BEGIN
declare @ret as nvarchar(450)
SELECT @ret = CONVERT(VARCHAR(10), coalesce((select MAX(datetimestamp) from HistoryItem (readuncommitted) where OBJECTGUID = @planguid), '2000-01-01 12:00:00.000'), 101)
if(@ret = '2000-01-01 12:00:00.000') begin
set @ret = ''
end
return @ret
END
GO
---------------------------------------------
-- dbo.GetPlanName
CREATE function [dbo].[GetPlanName](@PLANGUID as uniqueidentifier) returns nvarchar(450)
as
BEGIN
declare @ret as nvarchar(450)
SELECT @ret = Name FROM XPlan (readuncommitted) WHERE PlanGUID = @PLANGUID
return @ret
END
GO
---------------------------------------------
-- dbo.GetSQLColumnFullType
CREATE FUNCTION [dbo].[GetSQLColumnFullType]
(
@type_id int,
@maxlength int,
@scale int,
@precision int
)
RETURNS nvarchar(128)
AS
BEGIN
DECLARE @typeToReturn nvarchar(128) = TYPE_NAME(@type_id)
IF @typeToReturn = 'char'OR @typeToReturn ='varchar' OR @typeToReturn = 'binary' OR @typeToReturn = 'varbinary'
BEGIN
SET @typeToReturn = @typeToReturn + '(' + case @maxlength when -1 then 'max' else cast(@maxlength as nvarchar(10)) end + ')'
END
ELSE IF @typeToReturn = 'nchar'OR @typeToReturn ='nvarchar' OR @typeToReturn = 'nbinary' OR @typeToReturn = 'nvarbinary'
BEGIN
SET @typeToReturn = @typeToReturn + '(' + case @maxlength when -1 then 'max' else cast(@maxlength / 2 as nvarchar(10)) end + ')'
END
ELSE IF @typeToReturn = 'decimal' or @typeToReturn = 'numeric'
BEGIN
SET @typeToReturn = @typeToReturn + '(' + cast(@scale as nvarchar(10)) + ', ' + cast(@precision as nvarchar(10)) + ')'
END
RETURN @typeToReturn;
END
GO
---------------------------------------------
-- dbo.GetSQLColumnSafeGuid
CREATE FUNCTION [dbo].[GetSQLColumnSafeGuid] (@guid uniqueidentifier) RETURNS varchar(37)
AS
BEGIN
DECLARE @tmpstr varchar(37)
SELECT @tmpstr = upper(cast(@guid as varchar(37)))
SELECT @tmpstr = replace(@tmpstr, '-', '_')
SELECT @tmpstr = 'G' + @tmpstr
RETURN @tmpstr
END
GO
---------------------------------------------
-- dbo.GetSQLFullyQualifiedType
CREATE FUNCTION dbo.GetSQLFullyQualifiedType
(
@type_id int,
@maxlength int,
@scale int,
@precision int
)
RETURNS nvarchar(128)
AS
BEGIN
DECLARE @typeToReturn nvarchar(128);
select @typeToReturn = TYPE_NAME(@type_id);
IF @typeToReturn like '%varchar%'
BEGIN
SET @typeToReturn = @typeToReturn + '(' + cast(@maxlength as nvarchar(10)) + ')'
END
ELSE IF @typeToReturn like '%decimal%'
BEGIN
SET @typeToReturn = @typeToReturn + '(' + cast(@scale as nvarchar(10)) + ',' + cast(@precision as nvarchar(10)) + ')'
END
RETURN @typeToReturn;
END
GO
---------------------------------------------
-- dbo.GetSQLTableExpression
CREATE FUNCTION [dbo].[GetSQLTableExpression](
@SchemaName nvarchar(128),
@ObjectName nvarchar(Max)
)
RETURNS varchar(max)
AS
BEGIN
declare @SchemaExp varchar(max);
declare @ObjectExp varchar(max);
declare @returnval varchar(max)
set @SchemaExp = '';
set @ObjectExp = '';
--Build Schema Expression
if (SUBSTRING(@SchemaName,1,1) <> '[')
set @SchemaExp = '['
set @SchemaExp = @SchemaExp + @SchemaName;
if (SUBSTRING(@SchemaName,LEN(@SchemaName),1) <> ']')
set @SchemaExp = @SchemaExp + ']';
--Build Object Expression
if (SUBSTRING(@ObjectName,1,1) <> '[')
set @ObjectExp = '['
set @ObjectExp = @ObjectExp + @ObjectName;
if (SUBSTRING(@ObjectName,LEN(@ObjectName),1) <> ']')
set @ObjectExp = @ObjectExp + ']';
--Combine
select @returnval = @SchemaExp + '.' + @ObjectExp;
return @returnval;
END
GO
---------------------------------------------
-- dbo.GetScoreLootRefreshTriggerName
CREATE Function [dbo].[GetScoreLootRefreshTriggerName](
@aDimensionGUID uniqueidentifier
)
returns varchar(max)
AS
BEGIN
declare @TriggerName varchar(max);
set @TriggerName = 'trg_ScoreDimension_' + Replace(cast(@aDimensionGUID as varchar(64)),'-','') + '_LootRefresh';
return @TriggerName;
END
GO
---------------------------------------------
-- dbo.GetSecureListMemberFullPath
create function [dbo].[GetSecureListMemberFullPath](@listmemberguid as uniqueidentifier)
returns nvarchar(max)
as
begin
--declare @listmemberguid uniqueidentifier
--set @listmemberguid = '2DF3FEF0-A8BE-4975-95AE-8A88821D691B'
declare @parentlistmemberguid uniqueidentifier declare @SecureListMemberfound bit
declare @fullpath nvarchar(max)
select @fullpath = name, @SecureListMemberfound = 1, @parentlistmemberguid = parentlistmemberguid from SecureListMember where listmemberguid = @listmemberguid
declare @currentSecureListMembername nvarchar(450)
while @SecureListMemberfound = 1 begin
set @SecureListMemberfound = 0
select @currentSecureListMembername = name, @SecureListMemberfound = 1, @parentlistmemberguid = parentlistmemberguid from SecureListMember where listmemberguid = @parentlistmemberguid
if @SecureListMemberfound = 1 begin
set @fullpath = @currentSecureListMembername + '\' + @fullpath
end
end
return @fullpath
end
GO
---------------------------------------------
-- dbo.GetSecureListOffsetMember
CREATE function [dbo].[GetSecureListOffsetMember](@oldmemberguid as uniqueidentifier, @offset int)
returns uniqueidentifier
as
begin
--select * from securelist where name = 'year 20'
/* declare @oldmemberguid uniqueidentifier
declare @offset int
set @offset = 3
set @oldmemberguid = 'B95F36CB-970B-4E44-8382-81A12F1D3C06'
*/
declare @dimensionguid uniqueidentifier
select @dimensionguid = listguid
from securelistmember
where listmemberguid = @oldmemberguid
declare @ret as uniqueidentifier
select
@ret = cast(coalesce(slmnew.listmemberguid, '11111111-1111-1111-1111-111111111111') as uniqueidentifier)
from
securelistmember slmOld
left join SecureListMember slmNew on slmOld.listguid = slmNew.listguid
and slmNew.displayorder = slmOld.displayorder + @offset
and slmnew.ParentListMemberGUID = slmold.ParentListMemberGUID
where
slmold.listmemberguid = @oldmemberguid
if @ret is null set @ret = '11111111-1111-1111-1111-111111111111'
return @ret
end
GO
---------------------------------------------
-- dbo.GetSecureListSortorderFullPath
create function [dbo].[GetSecureListSortorderFullPath](@listmemberguid as uniqueidentifier)
returns nvarchar(max)
as
begin
/*
select dbo.GetSecureListSortorderFullPath(listmemberguid),* from folder order by dbo.[GetFolderSortorderFullPath](listmemberguid)
*/
--declare @listmemberguid uniqueidentifier
--set @listmemberguid = '2DF3FEF0-A8BE-4975-95AE-8A88821D691B'
declare @parentlistmemberguid uniqueidentifier
declare @folderfound bit
declare @fullpath nvarchar(max)
select @fullpath = replace(space(10 - len(cast(displayorder as varchar(max)))) + cast(displayorder as varchar(max)),' ','0'), @folderfound = 1, @parentlistmemberguid = parentlistmemberguid from securelistmember where listmemberguid = @listmemberguid
declare @currentfoldername nvarchar(450)
while @folderfound = 1 begin
set @folderfound = 0
select @currentfoldername = replace(space(10 - len(cast(displayorder as varchar(max)))) + cast(displayorder as varchar(max)),' ','0'), @folderfound = 1, @parentlistmemberguid = parentlistmemberguid from securelistmember where listmemberguid = @parentlistmemberguid
if @folderfound = 1 begin
set @fullpath = @currentfoldername + '\' + @fullpath
end
end
return @fullpath
end
--select replace(space(5 - len(cast(displayorder as varchar(max)))) + cast(displayorder as varchar(max)),' ','0') from folder
GO
---------------------------------------------
-- dbo.GetSecureListVersion
CREATE function [dbo].[GetSecureListVersion](@LISTGUID as uniqueidentifier) returns binary(8)
AS
BEGIN
declare @maxversion as binary(8)
declare @tempversion as binary(8)
select @maxversion = max(l.version)
from securelist l where l.listguid = @LISTGUID;
select @tempversion = max(lm.version)
from securelistmember lm where lm.listguid = @LISTGUID;
if(@tempversion > @maxversion) begin
SET @maxversion = @tempversion
end
select @tempversion = max(lmv.version)
from securelistmembervalue lmv where lmv.listguid = @LISTGUID;
if(@tempversion > @maxversion) begin
SET @maxversion = @tempversion
end
select @tempversion = max(ll.version)
from securelistlevel ll where ll.listguid = @LISTGUID;
if(@tempversion > @maxversion) begin
SET @maxversion = @tempversion
end
select @tempversion = max(lp.version)
from securelistproperty lp where lp.listguid = @LISTGUID;
if(@tempversion > @maxversion) begin
SET @maxversion = @tempversion
end
return @maxversion
END
GO
---------------------------------------------
-- dbo.GetSuperUserGUID
create function [dbo].[GetSuperUserGUID]()
RETURNS uniqueidentifier
AS
BEGIN
declare @val uniqueidentifier;
set @val = '10101010-1111-0000-1111-101010101010'
return @val;
END
GO
---------------------------------------------
-- dbo.GetSystemSectionFullPath
CREATE function [dbo].[GetSystemSectionFullPath](@SystemSectionguid as uniqueidentifier)
returns nvarchar(max)
as
begin
--declare @SystemSectionguid uniqueidentifier
--set @SystemSectionguid = '2DF3FEF0-A8BE-4975-95AE-8A88821D691B'
declare @parentSystemSectionguid uniqueidentifier
declare @SystemSectionfound bit
declare @fullpath nvarchar(max)
select @fullpath = name,
@SystemSectionfound = 1,
@parentSystemSectionguid = parentguid
from SystemSection where SystemSectionguid = @SystemSectionguid
declare @currentSystemSectionname nvarchar(450)
while @SystemSectionfound = 1 begin
set @SystemSectionfound = 0
select @currentSystemSectionname = name, @SystemSectionfound = 1, @parentSystemSectionguid = parentguid from SystemSection where SystemSectionguid = @parentSystemSectionguid
if @SystemSectionfound = 1 and @currentSystemSectionname <> 'System' begin
set @fullpath = @currentSystemSectionname + '\' + @fullpath
end
end
set @fullpath = replace(@fullpath,'~Tool_','')
set @fullpath = replace(@fullpath,'~Title_','')
set @fullpath = replace(@fullpath,'~Group_','')
set @fullpath = replace(@fullpath,'~Main_Generic','')
return @fullpath
end
GO
---------------------------------------------
-- dbo.GetTrueFalseString
create Function dbo.GetTrueFalseString(
@Bit bit
)
returns nvarchar(10)
AS
BEGIN
declare @returnval nvarchar(10)
if (@Bit = 1)
begin
set @returnval = 'True'
end
else
begin
set @returnval = 'False'
end
return @returnval
END
GO
---------------------------------------------
-- dbo.GetUpdateCommandForDataDictionaryFieldValueExample
-- =============================================
-- Author: Yaroslav Dembitskyi
-- Create date: 7/20/2017
-- Description: Generates update command for score item to populate DataDictionary
-- =============================================
CREATE FUNCTION [dbo].[GetUpdateCommandForDataDictionaryFieldValueExample]
(
@scoreGuid uniqueidentifier,
@columnName nvarchar(128),
@schemaName nvarchar(128),
@objectName nvarchar(128),
@columnType tinyint,
@idColumnName nvarchar(128) = null
)
RETURNS nvarchar(max)
AS
BEGIN
if([dbo].ColumnExists(@schemaName, @objectName, @columnName) = 0)
BEGIN
return ''
END
declare @result nvarchar(max)
declare @valueToUpdateSelectQuery nvarchar(max)
declare @fromWhereClause nvarchar(max) = ' from [' + @schemaName + '].[' + @objectName + '] where CONVERT(NVARCHAR(4000),[' + @columnName + ']) <> '''' '
declare @scoreGuidAsText nvarchar(50) = CONVERT(NVARCHAR(50), @scoreGuid)
if(@idColumnName is not null AND [dbo].ColumnExists(@schemaName, @objectName, @idColumnName) = 1 AND
(select DATA_TYPE from INFORMATION_SCHEMA.COLUMNS IC where TABLE_NAME = @objectName and TABLE_SCHEMA=@schemaName and COLUMN_NAME = @idColumnName) like '%int')
BEGIN
set @fromWhereClause = @fromWhereClause + ' and [' + @idColumnName + '] <> 0 '
END
IF(TYPE_NAME(@columnType) = 'bit')
BEGIN
set @valueToUpdateSelectQuery = 'select ''True/False'''
END
ELSE IF (TYPE_NAME(@columnType) = 'datetime' OR TYPE_NAME(@columnType) = 'datetime2' OR TYPE_NAME(@columnType) = 'smalldatetime')
BEGIN
set @valueToUpdateSelectQuery = 'select top 1 CONVERT(CHAR(10), ['+ @columnName + '], 103) + SUBSTRING(CONVERT(varchar, [' + @columnName + '], 0),12, 8) ' + @fromWhereClause
END
ELSE
BEGIN
set @valueToUpdateSelectQuery = 'select top 1 CONVERT(NVARCHAR(4000), ['+ @columnName + '])' + @fromWhereClause
END
set @result = 'if(exists(' + @valueToUpdateSelectQuery + '))
update [dbo].[DataDictionaryFieldValueExample] set ExampleValue = (' + @valueToUpdateSelectQuery + ') where ScoreGUID = ''' + @scoreGuidAsText + '''
else
delete from [dbo].[DataDictionaryFieldValueExample] where ScoreGUID = ''' + @scoreGuidAsText + ''''
return @result
END
GO
---------------------------------------------
-- dbo.GetUserGUID
CREATE function GetUserGUID(@aUsername as nvarchar(max)) returns uniqueidentifier
as
BEGIN
declare @ret as uniqueidentifier
select top 1 @ret = userguid from userprofile where username like @ausername
return @ret
END
GO
---------------------------------------------
-- dbo.GetUserGroupGUID
CREATE function [dbo].[GetUserGroupGUID](@agroupname as nvarchar(max)) returns uniqueidentifier
as
BEGIN
declare @ret as uniqueidentifier
select top 1 @ret = usergroupguid from usergroup where name like @agroupname
return @ret
END
GO
---------------------------------------------
-- dbo.GetUserRoleAssignmentCSV
CREATE FUNCTION [dbo].[GetUserRoleAssignmentCSV] (
@ENTITYGUID uniqueidentifier,
@ALIASGUIDLIST text,
@IDENTITYNAMES bit = 0
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @tbl TABLE ( MemberGUID uniqueidentifier )
DECLARE @ALIASGUID uniqueidentifier
DECLARE crsAliases CURSOR LOCAL FAST_FORWARD FOR
SELECT GUID FROM dbo.ConvertCSGuidsToTable(@ALIASGUIDLIST, ',')
OPEN crsAliases
FETCH NEXT FROM crsAliases INTO @ALIASGUID
WHILE @@FETCH_STATUS = 0 BEGIN
INSERT @tbl
SELECT DISTINCT
RA.UserGUID
FROM
viewS3RoleAssignmentDetail RA
inner join UserRole R on R.RoleID = RA.RoleID
inner join XPlan P on P.CachedLootID = RA.LootID
WHERE
R.UserRoleGUID = @ALIASGUID
AND P.PlanGUID = @EntityGUID
/* SELECT DISTINCT
IDENTITYGUID
FROM
IdentityAlias
WHERE
ALIASGUID = @ALIASGUID
AND IDENTITYGUID NOT IN (SELECT IDENTITYGUID FROM @tbl)
AND ((ENTITYGUID = @ENTITYGUID) OR (ENTITYGUID = '00000000-0000-0000-0000-000000000000'))
*/
FETCH NEXT FROM crsAliases INTO @ALIASGUID
END
CLOSE crsAliases
DEALLOCATE crsAliases
DECLARE @csv NVARCHAR(MAX)
SET @csv = ''
IF (@IDENTITYNAMES = 1) BEGIN
select @csv = @csv + namelast + ', ' + namefirst + '; ' from userprofile where userguid in(select memberguid from @tbl)
IF (len(@csv) > 1) BEGIN
select @csv = left(@csv, len(@csv) - 1)
END
END ELSE BEGIN
select @csv = @csv + cast(memberguid as varchar(36)) + ',' from @tbl
IF (len(@csv) > 1) BEGIN
select @csv = left(@csv, len(@csv) - 1)
END
END
RETURN @csv
END
GO
---------------------------------------------
-- dbo.GetValidDimensionTupleXML
create function GetValidDimensionTupleXML(@tuplexml xml, @mdcguid uniqueidentifier)
returns xml
as begin
declare @goodtuplexml xml
set @goodtuplexml = (select lower(cast(dimensionguid as varchar(36))) as DIMENSIONGUID from emfmodeldataconfigdimensionlink DIMENSIONALITY where modeldataconfigguid = @mdcguid for xml auto, elements)
declare @combinedxml xml
set @combinedxml = '
' + cast(@tuplexml as varchar(max)) + cast(@goodtuplexml as varchar(max)) + '
'
declare @goodmembers xml
select @goodmembers = @combinedxml.query('//DIMENSIONTUPLEMEMBER[DIMENSIONGUID = //DIMENSIONALITY/DIMENSIONGUID]')
declare @ots xml
select @ots = @tuplexml.query('/DIMENSIONTUPLE/OBJECTTYPESTRATA')
declare @mg xml
select @mg = @tuplexml.query('/DIMENSIONTUPLE/MEASUREGUID')
declare @goodxml xml
set @goodxml = '' + cast(@ots as varchar(max)) + cast(@mg as varchar(max)) + cast(@goodmembers as varchar(max)) + ''
return @goodxml
end
GO
---------------------------------------------
-- dbo.GetViewUnderlyingTables
CREATE function [dbo].[GetViewUnderlyingTables](@ViewSchema varchar(128), @ViewName varchar(128))
Returns Table
AS
return (select distinct(TABLE_NAME) TableName, TABLE_SCHEMA as TableSchema from INFORMATION_SCHEMA.VIEW_COLUMN_USAGE
where VIEW_SCHEMA = @ViewSchema AND VIEW_NAME = @ViewName);
GO
---------------------------------------------
-- dbo.GetWebSafeString
CREATE function [dbo].[GetWebSafeString](@input as nvarchar(max)) returns nvarchar(max)
as
BEGIN
declare @ret as nvarchar(max)
select @ret = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@input, '<', ''), '>', ''), '''', ''), '&', ''), '"', ''), '\', ''), '/', '')
return @ret
END
GO
---------------------------------------------
-- dbo.GetWebSafeStringFullTrim
CREATE function [dbo].[GetWebSafeStringFullTrim](@input as nvarchar(max)) returns nvarchar(max)
as
BEGIN
declare @ret as nvarchar(max)
select @ret = LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@input, '<', ''), '>', ''), '''', ''), '&', ''), '"', ''), '\', ''), '/', ''), ' ', ' ')))
return @ret
END
GO
---------------------------------------------
-- dbo.GetZZModelDataTableName
create function GetZZModelDataTableName(@mdcguid uniqueidentifier)
returns varchar(max)
as begin
return 'zzEMFModelData_' + replace(cast(@mdcguid as varchar(36)), '-','_')
end
GO
---------------------------------------------
-- dbo.GetZZModelDataViewName
CREATE function [dbo].[GetZZModelDataViewName](@mdcguid uniqueidentifier)
returns varchar(max)
as begin
declare @mdcName as nvarchar(64)
declare @ret as nvarchar(max)
SELECT
@mdcName = Name
FROM
EMFModelDataConfig
WHERE
ModelDataConfigGUID = @mdcguid
set @ret = replace(@mdcName, ' ', '')
set @ret = replace(@ret, '(', '')
set @ret = replace(@ret, ')', '')
set @ret = 'zzviewModelData_' + @ret
return @ret
end
GO
---------------------------------------------
-- dbo.GetZZModelTemplateMappingTableName
create function GetZZModelTemplateMappingTableName(@mdcguid uniqueidentifier)
returns varchar(max)
as begin
return 'zzEMFModelTemplateMapping_' + replace(cast(@mdcguid as varchar(36)), '-','_')
end
GO
---------------------------------------------
-- dbo.GetZeroGUID
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
CREATE FUNCTION [dbo].[GetZeroGUID] ()
RETURNS uniqueidentifier
AS
BEGIN
-- Declare the return variable here
DECLARE @ZEROGUID uniqueidentifier
select @ZEROGUID = [dbo].[ZeroGUID]();
RETURN @ZEROGUID
END
GO
---------------------------------------------
-- dbo.IntToGUID
CREATE Function [dbo].[IntToGUID](
@objectID int
)
returns UNIQUEIDENTIFIER
AS
BEGIN
declare @GUIDSTR nvarchar(36);
set @GUIDSTR = cast(dbo.ZeroGUID() as nvarchar(36));
declare @obj nvarchar(11);
if (@objectID >= 0) begin
set @obj = '0' + cast(@objectID as nvarchar(10));
end
else begin
set @obj = '1' + substring(cast(@objectID as nvarchar(11)), 2,10);
end
return cast(
STUFF('00000000', 1, LEN(SUBSTRING(@obj,1,8)),SUBSTRING(@obj, 1,8))
+ '-' +
STUFF('0000',1, LEN(SUBSTRING(@obj,9,3)),SUBSTRING(@obj,9,3))
+ '-0000-0000-000000000000' as uniqueidentifier)
END
GO
---------------------------------------------
-- dbo.IsClusteredIndexExist
-- =============================================
-- Author: AI
-- Create date: 8/03/2017
-- Description: Checks if clustered index exist.
-- Parameters:
-- @schema: Table schema
-- @table: Table name
-- @isPrimaryKey: Optional parameter. Checks if it's has primary key index. If parameter has default value then checks for clustered indexes with primary key and not.
-- Example:
-- Check for indexes with primary key and not
-- select dbo.IsClusteredIndexExist(@schema, @table, DEFAULT)
-- Check only primary key indexes
-- select dbo.IsClusteredIndexExist(@schema, @table, 1)
-- =============================================
CREATE FUNCTION [dbo].[IsClusteredIndexExist] (
@schema SYSNAME
,@table SYSNAME
,@isPrimaryKey BIT = NULL
)
RETURNS BIT
AS
BEGIN
DECLARE @result BIT
SET @result = (
SELECT CASE
WHEN count(*) > 0
THEN 1
ELSE 0
END
FROM sys.indexes i
INNER JOIN sys.tables t ON i.object_id = t.object_id
INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE t.type = 'u'
AND t.NAME = @table
AND s.NAME = @schema
AND i.type = 1
AND (
@isPrimaryKey IS NULL
OR i.is_primary_key = @isPrimaryKey
)
)
RETURN @result
END
GO
---------------------------------------------
-- dbo.IsLetter
CREATE function dbo.IsLetter(
@char varchar
)
returns bit
BEGIN
declare @returnVal bit;
declare @ascii int;
select @ascii = ASCII(@char);
if ((@ascii >= 65 and @ascii <= 90) or (@ascii >= 97 and @ascii <= 122)) begin
set @returnVal = 1;
end
else begin
set @returnVal = 0;
end
return @returnVal;
END
GO
---------------------------------------------
-- dbo.IsLetterOrDigit
CREATE function [dbo].[IsLetterOrDigit](
@char varchar
)
returns bit
BEGIN
declare @returnVal bit;
declare @ascii int;
select @ascii = ASCII(@char);
if (
(@ascii >= 48 and @ascii <= 57)
or (@ascii >= 65 and @ascii <= 90)
or (@ascii >= 97 and @ascii <= 122))
begin
set @returnVal = 1;
end
else begin
set @returnVal = 0;
end
return @returnVal;
END
GO
---------------------------------------------
-- dbo.IsSQLCharacterType
CREATE Function [dbo].[IsSQLCharacterType](
@eSQLDataType int
)
RETURNS bit
AS
BEGIN
declare @returnval bit;
set @returnval = 0;
if (@eSQLDataType in (175,239,35,99,167,231))
begin
set @returnval = 1;
end
return @returnval;
END
GO
---------------------------------------------
-- dbo.IsSQLDateTimeType
CREATE Function [dbo].[IsSQLDateTimeType](
@eSQLDataType int
)
RETURNS bit
AS
BEGIN
declare @returnval bit;
set @returnval = 0;
if (@eSQLDataType in (58,61))
begin
set @returnval = 1;
end
return @returnval;
END
GO
---------------------------------------------
-- dbo.IsSQLNumericType
CREATE Function [dbo].[IsSQLNumericType](
@eSQLDataType int
)
RETURNS bit
AS
BEGIN
declare @returnval bit;
set @returnval = 0;
if (@eSQLDataType in (48,52,56,58,59,60,62,106,122,127))
begin
set @returnval = 1;
end
return @returnval;
END
GO
---------------------------------------------
-- dbo.IsScoreObjectSQLForeignKeyedToTarget
CREATE FUNCTION dbo.IsScoreObjectSQLForeignKeyedToTarget
(
@dimToCheckAgainst UNIQUEIDENTIFIER,
@fkDimGUID UNIQUEIDENTIFIER
)
RETURNS BIT
AS
BEGIN
DECLARE @tableToFKCheck nvarchar(400)
DECLARE @tableToCheckAgainst nvarchar(400)
SELECT
@tableToCheckAgainst = a.DimensionGroupSQLObjectName, -- we check against this one to see if this table has a FK
@tableToFKCheck = A2.DimensionGroupSQLObjectName --this is the table we check if it is foreign keyed from
from viewscoreattribute a
INNER JOIN viewscoreattribute a2 ON a2.AttributeGUID = a.CachedFKDefaultLookupKeyGUID
where a.DimensionGUID = @dimToCheckAgainst AND a.CachedFKDimensionGUID =@fkDimGUID
DECLARE @result BIT
IF @tableToFKCheck is null OR @tableToCheckAgainst is null
BEGIN
SET @result = 0
END
ELSE
BEGIN
SET @result = dbo.IsTableForeignKeyedToTarget(@tableToFKCheck, @tableToCheckAgainst)
END
RETURN @RESULT
END
GO
---------------------------------------------
-- dbo.IsTableForeignKeyedToTarget
CREATE FUNCTION dbo.IsTableForeignKeyedToTarget (
@tableToFKCheck nvarchar(400),
@tableToCheckAgainst nvarchar(400)
)
RETURNS BIT
AS
BEGIN
declare @returnval as bit
IF (
SELECT
COUNT(1)
FROM
sys.foreign_keys (nolock) AS f
INNER JOIN
sys.foreign_key_columns (nolock) AS fc
ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN
sys.tables (nolock) t
ON t.OBJECT_ID = fc.referenced_object_id
WHERE
OBJECT_NAME (f.referenced_object_id) = 'dimpatienttype' AND OBJECT_NAME(f.parent_object_id) = 'dimaccount'
) > 0
BEGIN
SET @returnval = 1
END
ELSE
BEGIN
SET @returnval = 0
END
RETURN @returnval
END
GO
---------------------------------------------
-- dbo.IsTriggerExist
CREATE Function [dbo].[IsTriggerExist](
@TriggerName varchar(128)
)
returns bit
BEGIN
declare @retval bit;
declare @count int;
select @count = count(*) from ViewSysTriggers where
Name = @TriggerName
if (@count >= 1)
set @retval = 1
ELSE
set @retval = 0
return @retval;
END
GO
---------------------------------------------
-- dbo.IsTupleXMLValidForStructure
CREATE function IsTupleXMLValidForStructure (@tuplexml xml, @mdcguid uniqueidentifier)
returns bit
as begin
declare @cnt int
select
@cnt = count(*)
from
(
(select
T.c.query('DIMENSIONGUID').value('.', 'uniqueidentifier') as dimensionguid
from
@tuplexml.nodes('//DIMENSIONTUPLEMEMBER') T(c))
) xmld
left join emfmodeldataconfigdimensionlink mdcd on mdcd.dimensionguid = xmld.dimensionguid and modeldataconfigguid = @mdcguid
where
mdcd.dimensionguid is null
declare @retval bit
if @cnt = 0
set @retval = 1
else
set @retval = 0
return @retval
end
GO
---------------------------------------------
-- dbo.IsUniqueIndexColumnExist
Create Function [dbo].[IsUniqueIndexColumnExist](
@SchemaName nvarchar(128),
@ObjectName nvarchar(128),
@ColumnName nvarchar(128)
)
Returns bit
AS
BEGIN
declare @Count int;
select @Count = COUNT(IND0.Name) from sys.objects O0
inner join sys.schemas S0 on S0.schema_id = O0.schema_id
inner join sys.indexes IND0 on O0.object_id = IND0.object_id
inner join sys.index_columns ICOL0 on ICOL0.object_id = O0.object_id and IND0.index_id = ICOL0.index_id
inner join sys.columns COL0 on COL0.object_id = O0.object_id and ICOL0.column_id = COL0.column_id
Group By IND0.name, S0.name, O0.name
HAVING S0.name = @SchemaName and O0.name = @ObjectName and COUNT(IND0.Name) = 1
and
IND0.name in (
select IND.name from sys.objects O
inner join sys.schemas S on S.schema_id = O.schema_id
inner join sys.indexes IND on O.object_id = IND.object_id
inner join sys.index_columns ICOL on ICOL.object_id = O.object_id and IND.index_id = ICOL.index_id
inner join sys.columns COL on COL.object_id = O.object_id and ICOL.column_id = COL.column_id
where S.name = @SchemaName and O.name = @ObjectName and COL.name = @ColumnName
and IND.is_unique = 1
)
declare @ReturnVal bit;
if (@Count >= 1)
BEGIN
set @ReturnVal = 1;
END
ELSE
BEGIN
set @ReturnVal = 0;
END
return @ReturnVal;
END
GO
---------------------------------------------
-- dbo.IsView
CREATE FUNCTION [dbo].[IsView]
(
@SchemaName nvarchar(128),
@ObjectName nvarchar(max)
)
returns bit
BEGIN
declare @TOTAL int;
select @TOTAL = COUNT(*) from sys.views V
inner join sys.schemas S on V.schema_id = S.schema_id
where
S.Name = @SchemaName and V.Name = @ObjectName
return cast(@TOTAL as bit);
END
GO
---------------------------------------------
-- dbo.JSONEscaped
CREATE FUNCTION [dbo].[JSONEscaped] ( /* this is a simple utility function that takes a SQL String with all its clobber and outputs it as a sting with all the JSON escape sequences in it.*/
@Unescaped NVARCHAR(MAX) --a string with maybe characters that will break json
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
SELECT @Unescaped = REPLACE(@Unescaped, FROMString, TOString)
FROM (SELECT '' AS FromString, '\' AS ToString
UNION ALL SELECT '"', '"'
UNION ALL SELECT '/', '/'
UNION ALL SELECT CHAR(08),'b'
UNION ALL SELECT CHAR(12),'f'
UNION ALL SELECT CHAR(10),'n'
UNION ALL SELECT CHAR(13),'r'
UNION ALL SELECT CHAR(09),'t'
) substitutions
RETURN @Unescaped
END
GO
---------------------------------------------
-- dbo.Last12Months
Create FUNCTION [dbo].[Last12Months]
(
@Date DATETIME
) RETURNS @tbl TABLE (Start DATETIME, EndDate DATETIME)
AS
BEGIN
WITH T AS(
SELECT
DATEADD(month, DATEDIFF(month, 0, @Date), 0) AS Start,
DATEADD(d, -DAY(DATEADD(m,1,@date)),DATEADD(m,1,@date)) AS EndDate,
12 Cnt
UNION ALL
SELECT
DATEADD(month, -1, Start),
DATEADD(d, -DAY(DATEADD(m,1,Start-1)),DATEADD(m,1,Start-1)),
Cnt-1
FROM
T
WHERE
Cnt-1>0
)
INSERT INTO @tbl
(Start, EndDate)
SELECT
Start, EndDate
FROM T
RETURN
END
GO
---------------------------------------------
-- dbo.MaxDateTime
create function dbo.MaxDateTime(@val1 datetime, @val2 datetime)
returns datetime
as
begin
if @val1 > @val2
return @val1
return isnull(@val2,@val1)
end
GO
---------------------------------------------
-- dbo.ParseFullPath
CREATE FUNCTION [dbo].[ParseFullPath]
(
@inText varchar(max),
@delim varchar(1) = '\',
@targetIndex int
)
RETURNS varchar(max)
AS
BEGIN
IF @inText is null BEGIN
return ''
end
IF len(@inText) = 0 BEGIN
return ''
end
DECLARE @remainingText varchar(max)
DECLARE @currentValue varchar(max)
DECLARE @currentIndex int
SET @remainingText = @inText
SET @currentIndex = 0
WHILE @currentIndex < @targetIndex
BEGIN
SET @currentIndex = @currentIndex + 1
IF charindex('\', @remainingText) = 0 BEGIN
IF @currentIndex = @targetIndex
RETURN @remainingText
ELSE
return ''
end
SET @currentValue = left(@remainingText,charindex('\', @remainingText) -1)
SET @remainingText = right(@remainingText, len(@remainingText) - (len(@currentValue) + 1))
END
RETURN @currentValue
END
GO
---------------------------------------------
-- dbo.ParseFullPathGUID
CREATE FUNCTION [dbo].[ParseFullPathGUID]
(
@inText varchar(max),
@delim varchar(1) = '\',
@targetIndex int
)
RETURNS uniqueidentifier
AS
BEGIN
IF @inText is null BEGIN
return '00000000-0000-0000-0000-000000000000'
end
IF len(@inText) = 0 BEGIN
return '00000000-0000-0000-0000-000000000000'
end
DECLARE @remainingText varchar(max)
DECLARE @currentValue uniqueidentifier
DECLARE @currentIndex int
SET @remainingText = @inText
SET @currentIndex = 0
WHILE @currentIndex < @targetIndex
BEGIN
SET @currentIndex = @currentIndex + 1
IF charindex('\', @remainingText) = 0 BEGIN
IF @currentIndex = @targetIndex
RETURN @remainingText
ELSE
return '00000000-0000-0000-0000-000000000000'
end
SET @currentValue = left(@remainingText,charindex('\', @remainingText) -1)
SET @remainingText = right(@remainingText, len(@remainingText) - (len(@currentValue) + 1))
END
RETURN @currentValue
END
GO
---------------------------------------------
-- dbo.ParseRecord
CREATE function [dbo].[ParseRecord](
@test nvarchar(max)
,@findBase nvarchar(max)
) returns nvarchar(max)
as
BEGIN
declare @ret as nvarchar(max)
--declare @test nvarchar(max)
--set @test = 'Quantity=126|CostPerItem=1250.00'
--declare @findBase nvarchar(max)
--set @findBase = 'Item'
declare @recordStart char(1)
set @recordStart = ','
declare @recordEqual char(1)
set @recordEqual = '='
declare @find nvarchar(max)
set @find = @recordStart + @findBase + @recordEqual
declare @startPos int
set @startpos = charindex(@find,@test,0)
if @startPos = 0 begin
--not found, try without recordStart
set @find = @findBase + @recordEqual
set @startpos = charindex(@find,@test,0)
if @startPos = 0 begin
--still not found
return ''
end
end
set @startPos = @startPos + LEN(@find)
declare @endPos int
set @endpos = CHARINDEX(@recordStart,@test,@startPos)
if @endPos = 0 begin
set @endPos = LEN(@test) + 1
end
set @ret = SUBSTRING(@test,@startpos, @endPos - @startPos)
return @ret
END
GO
---------------------------------------------
-- dbo.RandNumber
CREATE FUNCTION RandNumber()
RETURNS float
AS
BEGIN
RETURN (SELECT RandNumber FROM viewRandomNumber)
END
GO
---------------------------------------------
-- dbo.STRAGGR
-- Unable to retrieve definition for dbo.STRAGGR.
GO
---------------------------------------------
-- dbo.SanitizeNonDelimitedIdentifier
CREATE FUNCTION dbo.SanitizeNonDelimitedIdentifier(
@str varchar(max)
)
returns varchar(max)
BEGIN
declare @index int;
declare @returnVal varchar(max);
declare @currentChar char;
set @returnVal = '';
set @index = 1;
WHILE (@index <= LEN(@str))
begin
select @currentChar = SUBSTRING(@str,@index,1);
if (@index = 1) begin
if (dbo.IsLetter(@currentChar) = 1 or @currentChar = '_' or @currentChar = '@' or @currentChar = '#') begin
set @returnVal = @returnVal + @currentChar;
end
else begin
set @returnVal = @returnVal + '_';
end
end
else
begin
if (dbo.IsLetterOrDigit(@currentChar) = 1 or @currentChar = '_' or @currentChar = '@' or @currentChar = '#' or @currentChar = '$') begin
set @returnVal = @returnVal + @currentChar;
end
else begin
set @returnVal = @returnVal + '_';
end
end
set @index = @index + 1;
end
return @returnVal;
END
GO
---------------------------------------------
-- dbo.ScoreIsDataTableInUse
CREATE FUNCTION [dbo].[ScoreIsDataTableInUse]
(
@DataTableGUID uniqueidentifier
)
RETURNS Bit
As
BEGIN
--Is DataTable used by any composites
DECLARE @CompositeCount int;
select @CompositeCount = COUNT(*) from ScoreComposite COMP
inner join ScoreDataTable DT on DT.DataTableGUID = COMP.DataTableGUID1 OR DT.DataTableGUID = COMP.DataTableGuid2
Where DT.DataTableGUID = @DataTableGUID;
--Any other cases? I don't think so...
declare @retval bit;
set @retval = 0;
if (@CompositeCount > 0)
BEGIN
set @retval = 1;
END
RETURN @retval
END
GO
---------------------------------------------
-- dbo.ScoreIsDimensionFKsActive
CREATE FUNCTION [dbo].[ScoreIsDimensionFKsActive] (
@DimensionGUID uniqueidentifier
)
RETURNS BIT
AS
BEGIN
--Does Given Dimension Contain an Attribute that is a foreign key to an in-use dimension?
declare @Total int;
select @Total = COUNT(*) from ScoreDataTable DT
inner join ScoreDataTableKeyLink DTLINK on DT.DataTableGUID = DTLINK.DataTableGUID
inner join ScoreAttribute INUSE_ATT on INUSE_ATT.AttributeGUID = DTLINK.KeyGUID
inner join ScoreAttribute OUR_ATT on OUR_ATT.AttributeGUID = INUSE_ATT.ForeignKeyGUID
inner join ScoreDimensionGroup OUR_DIMGROUP on OUR_DIMGROUP.DimensionGroupGUID = OUR_ATT.DimensionGroupGUID
inner join ScoreDimension OUR_DIM on OUR_DIM.DimensionGUID = OUR_DIMGROUP.DimensionGUID
Where OUR_DIM.DimensionGUID = @DimensionGUID
DECLARE @retval BIT;
SET @retval = 0;
IF (@Total > 0)
BEGIN
set @retval = 1;
END
return @retval;
END
GO
---------------------------------------------
-- dbo.ScoreIsDimensionInUse
CREATE FUNCTION [dbo].[ScoreIsDimensionInUse]
(
@DimensionGuid uniqueidentifier
)
RETURNS Bit
As
BEGIN
--Is Dimension used by any datatables
DECLARE @DTCount int;
select @DTCount = COUNT(*) from ScoreDataTable DT
inner join ScoreDataTableKeyLink KLINK on DT.DataTableGUID = KLINK.DataTableGUID
inner join ScoreAttribute ATT on ATT.AttributeGUID = KLINK.KeyGUID
inner join ScoreDimensionGroup G on ATT.DimensionGroupGUID = G.DimensionGroupGUID
inner join ScoreDimension DIM on DIM.DimensionGUID = G.DimensionGUID
Where DIM.DimensionGUID = @DimensionGUID;
declare @retval bit;
set @retval = 0;
--Does Dimension Contain an Attribute that is a foreign key to an in use dimension?
DECLARE @IsaForeignKeyForInUse bit;
set @IsaForeignKeyForInUse = [dbo].[ScoreIsDimensionFKsActive] (@DimensionGUID);
if (@IsaForeignKeyForInUse = 1)
BEGIN
set @retval = 1
END
if (@DTCount > 0)
BEGIN
set @retval = 1;
END
RETURN @retval
END
GO
---------------------------------------------
-- dbo.ScoreIsPlaceHolderDimension
CREATE FUNCTION [dbo].[ScoreIsPlaceHolderDimension]
(
@DimensionGuid uniqueidentifier
)
RETURNS Bit
As
BEGIN
--Is Dimension used by any datatables
DECLARE @DTCount int;
select @DTCount = COUNT(*) from ScoreComposite C
inner join ScoreCompositeLink CL on C.CompositeGUID = CL.CompositeGUID
inner join ScoreAttribute ATT on ATT.AttributeGUID = CL.Key1GUID
inner join ScoreDimensionGroup G on ATT.DimensionGroupGUID = G.DimensionGroupGUID
inner join ScoreDimension DIM on DIM.DimensionGUID = G.DimensionGUID
Where DIM.DimensionGUID = @DimensionGUID and CL.[Type] = 1 ; --direct placeholder
declare @retval bit;
set @retval = 0;
if (@DTCount > 0)
BEGIN
set @retval = 1;
END
RETURN @retval
END
GO
---------------------------------------------
-- dbo.Split
/*************************************************************
** Change History
**************************************************************
** CID Date Author WI Description
** 1 2018-09-04 IP B-20335 Component varchar(50) --> varchar(500) to support spitting of History Viewer filter
** 2 2018-09-13 SD TK-63626 Change type from varchar(500) to varchar(max)
TK-63621
*************************************************************/
CREATE FUNCTION [dbo].[Split](
@Input varchar(max),
@Delimeter char(1)
)
RETURNS @returnTable TABLE(Component varchar(max))
AS
BEGIN
--Parse the string and insert each component into the @returnTable table
DECLARE @SubString varchar(max)
DECLARE @StartPos int, @Length int
WHILE LEN(@Input) > 0
BEGIN
SET @StartPos = CHARINDEX(@Delimeter, @Input)
IF @StartPos < 0 SET @StartPos = 0
SET @Length = LEN(@Input) - @StartPos - 1
IF @Length < 0 SET @Length = 0
IF @StartPos > 0
BEGIN
SET @SubString = SUBSTRING(@Input, 1, @StartPos - 1)
SET @Input = SUBSTRING(@Input, @StartPos + 1, LEN(@Input) - @StartPos)
END
ELSE
BEGIN
SET @SubString = @Input
SET @Input = ''
END
INSERT @returnTable (Component) VALUES(@SubString)
END
--Show all Components in the @returnTable table
RETURN
END
GO
---------------------------------------------
-- dbo.StripNewLine
CREATE function [dbo].[StripNewLine](
@Input varchar(max)
)
returns varchar(max)
AS
BEGIN
declare @retval varchar(max);
set @retval = REPLACE(REPLACE(REPLACE(@Input, CHAR(13), ' '), CHAR(10), ' '), CHAR(13) + CHAR(10), ' ');
return @retval;
END
GO
---------------------------------------------
-- dbo.TableColumnExists
CREATE FUNCTION [dbo].[TableColumnExists](
@SchemaName NVARCHAR(128),
@TableName NVARCHAR(MAX),
@ColumnName nvarchar(128)
)
RETURNS BIT--Returns 0 if column does not exist. Returns 1 if column exists.
AS
BEGIN
IF EXISTS
(SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = @SchemaName AND TABLE_NAME = @tablename
AND COLUMN_NAME = @columnname
)
RETURN cast(1 as bit)
--Table does not contain the column.
RETURN cast(0 as bit)
END
GO
---------------------------------------------
-- dbo.TableColumnExistsByTableExpression
CREATE FUNCTION [dbo].[TableColumnExistsByTableExpression](
@TableExpression NVARCHAR(MAX),
@ColumnName nvarchar(128)
)
RETURNS BIT--Returns 0 if column does not exist. Returns 1 if column exists.
AS
BEGIN
IF EXISTS
(SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA + '.' + TABLE_NAME = @TableExpression
AND COLUMN_NAME = @columnname
)
RETURN cast(1 as bit)
IF EXISTS
(SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA + '.' + TABLE_NAME = @TableExpression
AND '[' + COLUMN_NAME + ']' = @columnname
)
RETURN cast(1 as bit)
IF EXISTS
(SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE ('[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']') = @TableExpression
AND COLUMN_NAME = @columnname
)
RETURN cast(1 as bit)
IF EXISTS
(SELECT 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE ('[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']') = @TableExpression
AND '[' + COLUMN_NAME + ']' = @columnname
)
RETURN cast(1 as bit)
--Table does not contain the column.
RETURN cast(0 as bit)
END
GO
---------------------------------------------
-- dbo.TableExists
CREATE FUNCTION [dbo].[TableExists](
@SchemaName sysname,
@TableName sysname
)
RETURNS BIT--Returns 0 if table does not exist. Returns 1 if table exists.
AS
BEGIN
IF EXISTS
(SELECT * FROM INFORMATION_SCHEMA.Tables
WHERE TABLE_SCHEMA = @SchemaName AND TABLE_NAME = @TableName and TABLE_TYPE = 'BASE TABLE')
RETURN cast(1 as bit)
--Table does not contain the column.
RETURN cast(0 as bit)
END
GO
---------------------------------------------
-- dbo.TableExistsByTableExpression
CREATE FUNCTION [dbo].[TableExistsByTableExpression](
@TableExpression NVARCHAR(MAX)
)
RETURNS BIT--Returns 0 if table does not exist. Returns 1 if table exists.
AS
BEGIN
IF EXISTS
(SELECT * FROM INFORMATION_SCHEMA.Tables
WHERE TABLE_SCHEMA + '.' + TABLE_NAME = @TableExpression)
RETURN cast(1 as bit)
IF EXISTS
(SELECT * FROM INFORMATION_SCHEMA.Tables
WHERE '[' + TABLE_SCHEMA + '].[' + TABLE_NAME + ']' = @TableExpression)
RETURN cast(1 as bit)
IF EXISTS
(SELECT * FROM INFORMATION_SCHEMA.Tables
WHERE TABLE_NAME = @TableExpression)
RETURN cast(1 as bit)
--Table does not contain the column.
RETURN cast(0 as bit)
END
GO
---------------------------------------------
-- dbo.TitleCase
create function dbo.TitleCase(@Text as varchar(8000))
returns varchar(8000)
as
begin
declare @Reset bit;
declare @Ret varchar(8000);
declare @i int;
declare @c char(1);
select @Reset = 1, @i=1, @Ret = '';
while (@i <= len(@Text))
select @c= substring(@Text,@i,1),
@Ret = @Ret + case when @Reset=1 then UPPER(@c) else LOWER(@c) end,
@Reset = case when @c like '[a-zA-Z]' then 0 else 1 end,
@i = @i +1
return @Ret
end
GO
---------------------------------------------
-- dbo.ToValidCSV
create function dbo.ToValidCSV (@Text varchar(max))
RETURNS varchar(max)
AS
BEGIN
declare @RetVal varchar(max);
set @RetVal = @Text;
-- if it contains " , replace with ""
if (CHARINDEX('"', @RetVal, 1) <> 0) begin
set @RetVal = REPLACE(@RetVal, '"', '""');
end
-- if it contains a comma, seperate with quotes
if (CHARINDEX(',',@RetVal,1) <> 0) begin
set @RetVal = '"' + @RetVal + '"';
end
return @RetVal;
END
GO
---------------------------------------------
-- dbo.TrimChar
Create FUNCTION [dbo].[TrimChar](
@String NVARCHAR(4000),
@c NCHAR(1)
)
RETURNS nvarchar(4000)
AS
BEGIN
IF @String IS NOT NULL AND @c IS NOT NULL
BEGIN
SET @String = REPLACE(REPLACE(LTrim(RTrim(REPLACE(REPLACE(@String,' ','~'),@c,' '))),' ',@c),'~',' ')
END
RETURN @String
END
GO
---------------------------------------------
-- dbo.ViewExists
CREATE FUNCTION [dbo].[ViewExists](@SchemaName nvarchar(128), @ViewName NVARCHAR(128))
RETURNS BIT--Returns 0 if column does not exist. Returns 1 if column exists.
AS
BEGIN
--See if the Table already contains the column.
IF EXISTS
(SELECT * FROM INFORMATION_SCHEMA.Views
WHERE TABLE_SCHEMA = @SchemaName AND TABLE_NAME = @ViewName)
RETURN cast(1 as bit)
--Table does not contain the column.
RETURN cast(0 as bit)
END
GO
---------------------------------------------
-- dbo.YTD
CREATE FUNCTION [dbo].[YTD]
(
@currentMonthIndex tinyint,
@amount01 decimal(19, 4),
@amount02 decimal(19, 4),
@amount03 decimal(19, 4),
@amount04 decimal(19, 4),
@amount05 decimal(19, 4),
@amount06 decimal(19, 4),
@amount07 decimal(19, 4),
@amount08 decimal(19, 4),
@amount09 decimal(19, 4),
@amount10 decimal(19, 4),
@amount11 decimal(19, 4),
@amount12 decimal(19, 4)
)
returns decimal(19, 4) with schemabinding
BEGIN
declare @amount decimal(19, 4)
set @amount = @amount01
if @currentMonthIndex >= 2 begin set @amount = @amount + @amount02;
if @currentMonthIndex >= 3 begin set @amount = @amount + @amount03;
if @currentMonthIndex >= 4 begin set @amount = @amount + @amount04;
if @currentMonthIndex >= 5 begin set @amount = @amount + @amount05;
if @currentMonthIndex >= 6 begin set @amount = @amount + @amount06;
if @currentMonthIndex >= 7 begin set @amount = @amount + @amount07;
if @currentMonthIndex >= 8 begin set @amount = @amount + @amount08;
if @currentMonthIndex >= 9 begin set @amount = @amount + @amount09;
if @currentMonthIndex >= 10 begin set @amount = @amount + @amount10;
if @currentMonthIndex >= 11 begin set @amount = @amount + @amount11;
if @currentMonthIndex >= 12 begin set @amount = @amount + @amount12;
end end end end end end end end end end end
return @amount
END
GO
---------------------------------------------
-- dbo.ZeroGUID
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
CREATE FUNCTION dbo.ZeroGUID ()
RETURNS uniqueidentifier
AS
BEGIN
-- Declare the return variable here
DECLARE @ZEROGUID uniqueidentifier
SET @ZEROGUID = '00000000-0000-0000-0000-000000000000'
RETURN @ZEROGUID
END
GO
---------------------------------------------
-- dbo.fnParseJSON
CREATE FUNCTION [dbo].[fnParseJSON]( @JSON NVARCHAR(MAX))
/**************************************************************
** Change History
** CID Date Author WI Description
** 1 2019-06-03 IP D-07973 function that transforms JSON to element-list
*************************************************************/
RETURNS @hierarchy TABLE
(
element_id INT IDENTITY(1, 1) NOT NULL, /* internal surrogate primary key gives the order of parsing and the list order */
sequenceNo [int] NULL, /* the place in the sequence for the element */
parent_ID INT,/* if the element has a parent then it is in this column. The document is the ultimate parent, so you can get the structure from recursing from the document */
Object_ID INT,/* each list or object has an object id. This ties all elements to a parent. Lists are treated as objects here */
NAME NVARCHAR(2000),/* the name of the object */
StringValue NVARCHAR(MAX) NOT NULL,/*the string representation of the value of the element. */
ValueType VARCHAR(10) NOT null /* the declared type of the value represented as a string in StringValue*/
)
AS
BEGIN
DECLARE
@FirstObject INT, --the index of the first open bracket found in the JSON string
@OpenDelimiter INT,--the index of the next open bracket found in the JSON string
@NextOpenDelimiter INT,--the index of subsequent open bracket found in the JSON string
@NextCloseDelimiter INT,--the index of subsequent close bracket found in the JSON string
@Type NVARCHAR(10),--whether it denotes an object or an array
@NextCloseDelimiterChar CHAR(1),--either a '}' or a ']'
@Contents NVARCHAR(MAX), --the unparsed contents of the bracketed expression
@Start INT, --index of the start of the token that you are parsing
@end INT,--index of the end of the token that you are parsing
@param INT,--the parameter at the end of the next Object/Array token
@EndOfName INT,--the index of the start of the parameter at end of Object/Array token
@token NVARCHAR(200),--either a string or object
@value NVARCHAR(MAX), -- the value as a string
@SequenceNo int, -- the sequence number within a list
@name NVARCHAR(200), --the name as a string
@parent_ID INT,--the next parent ID to allocate
@lenJSON INT,--the current length of the JSON String
@characters NCHAR(36),--used to convert hex to decimal
@result BIGINT,--the value of the hex symbol being parsed
@index SMALLINT,--used for parsing the hex value
@Escape INT --the index of the next escape character
DECLARE @Strings TABLE /* in this temporary table we keep all strings, even the names of the elements, since they are 'escaped' in a different way, and may contain, unescaped, brackets denoting objects or lists. These are replaced in the JSON string by tokens representing the string */
(
String_ID INT IDENTITY(1, 1),
StringValue NVARCHAR(MAX)
)
SELECT--initialise the characters to convert hex to ascii
@characters='0123456789abcdefghijklmnopqrstuvwxyz',
@SequenceNo=0, --set the sequence no. to something sensible.
/* firstly we process all strings. This is done because [{} and ] aren't escaped in strings, which complicates an iterative parse. */
@parent_ID=0;
WHILE 1=1 --forever until there is nothing more to do
BEGIN
SELECT
@start=PATINDEX('%[^a-zA-Z]["]%', @json collate SQL_Latin1_General_CP850_Bin);--next delimited string
IF @start=0 BREAK --no more so drop through the WHILE loop
IF SUBSTRING(@json, @start+1, 1)='"'
BEGIN --Delimited Name
SET @start=@Start+1;
SET @end=PATINDEX('%[^\]["]%', RIGHT(@json, LEN(@json+'|')-@start) collate SQL_Latin1_General_CP850_Bin);
END
IF @end=0 --no end delimiter to last string
BREAK --no more
SELECT @token=SUBSTRING(@json, @start+1, @end-1)
--now put in the escaped control characters
SELECT @token=REPLACE(@token, FROMString, TOString)
FROM
(SELECT
'\"' AS FromString, '"' AS ToString
UNION ALL SELECT '\\', '\'
UNION ALL SELECT '\/', '/'
UNION ALL SELECT '\b', CHAR(08)
UNION ALL SELECT '\f', CHAR(12)
UNION ALL SELECT '\n', CHAR(10)
UNION ALL SELECT '\r', CHAR(13)
UNION ALL SELECT '\t', CHAR(09)
) substitutions
SELECT @result=0, @escape=1
--Begin to take out any hex escape codes
WHILE @escape>0
BEGIN
SELECT @index=0,
--find the next hex escape sequence
@escape=PATINDEX('%\x[0-9a-f][0-9a-f][0-9a-f][0-9a-f]%', @token collate SQL_Latin1_General_CP850_Bin)
IF @escape>0 --if there is one
BEGIN
WHILE @index<4 --there are always four digits to a \x sequence
BEGIN
SELECT --determine its value
@result=@result+POWER(16, @index)
*(CHARINDEX(SUBSTRING(@token, @escape+2+3-@index, 1),
@characters)-1), @index=@index+1 ;
END
-- and replace the hex sequence by its unicode value
SELECT @token=STUFF(@token, @escape, 6, NCHAR(@result))
END
END
--now store the string away
INSERT INTO @Strings (StringValue) SELECT @token
-- and replace the string with a token
SELECT @JSON=STUFF(@json, @start, @end+1,
'@string'+CONVERT(NVARCHAR(5), @@identity))
END
-- all strings are now removed. Now we find the first leaf.
WHILE 1=1 --forever until there is nothing more to do
BEGIN
SELECT @parent_ID=@parent_ID+1
--find the first object or list by looking for the open bracket
SELECT @FirstObject=PATINDEX('%[{[[]%', @json collate SQL_Latin1_General_CP850_Bin)--object or array
IF @FirstObject = 0 BREAK
IF (SUBSTRING(@json, @FirstObject, 1)='{')
SELECT @NextCloseDelimiterChar='}', @type='object'
ELSE
SELECT @NextCloseDelimiterChar=']', @type='array'
SELECT @OpenDelimiter=@firstObject
WHILE 1=1 --find the innermost object or list...
BEGIN
SELECT
@lenJSON=LEN(@JSON+'|')-1
--find the matching close-delimiter proceeding after the open-delimiter
SELECT
@NextCloseDelimiter=CHARINDEX(@NextCloseDelimiterChar, @json,
@OpenDelimiter+1)
--is there an intervening open-delimiter of either type
SELECT @NextOpenDelimiter=PATINDEX('%[{[[]%',
RIGHT(@json, @lenJSON-@OpenDelimiter)collate SQL_Latin1_General_CP850_Bin)--object
IF @NextOpenDelimiter=0
BREAK
SELECT @NextOpenDelimiter=@NextOpenDelimiter+@OpenDelimiter
IF @NextCloseDelimiter<@NextOpenDelimiter
BREAK
IF SUBSTRING(@json, @NextOpenDelimiter, 1)='{'
SELECT @NextCloseDelimiterChar='}', @type='object'
ELSE
SELECT @NextCloseDelimiterChar=']', @type='array'
SELECT @OpenDelimiter=@NextOpenDelimiter
END
---and parse out the list or name/value pairs
SELECT
@contents=SUBSTRING(@json, @OpenDelimiter+1,
@NextCloseDelimiter-@OpenDelimiter-1)
SELECT
@JSON=STUFF(@json, @OpenDelimiter,
@NextCloseDelimiter-@OpenDelimiter+1,
'@'+@type+CONVERT(NVARCHAR(5), @parent_ID))
WHILE (PATINDEX('%[A-Za-z0-9@+.e]%', @contents collate SQL_Latin1_General_CP850_Bin))<>0
BEGIN
IF @Type='Object' --it will be a 0-n list containing a string followed by a string, number,boolean, or null
BEGIN
SELECT
@SequenceNo=0,@end=CHARINDEX(':', ' '+@contents)--if there is anything, it will be a string-based name.
SELECT @start=PATINDEX('%[^A-Za-z@][@]%', ' '+@contents collate SQL_Latin1_General_CP850_Bin)--AAAAAAAA
SELECT @token=SUBSTRING(' '+@contents, @start+1, @End-@Start-1),
@endofname=PATINDEX('%[0-9]%', @token collate SQL_Latin1_General_CP850_Bin),
@param=RIGHT(@token, LEN(@token)-@endofname+1)
SELECT
@token=LEFT(@token, @endofname-1),
@Contents=RIGHT(' '+@contents, LEN(' '+@contents+'|')-@end-1)
SELECT @name=stringvalue FROM @strings
WHERE string_id=@param --fetch the name
END
ELSE
SELECT @Name=null,@SequenceNo=@SequenceNo+1
SELECT
@end=CHARINDEX(',', @contents)-- a string-token, object-token, list-token, number,boolean, or null
IF @end=0
SELECT @end=PATINDEX('%[A-Za-z0-9@+.e][^A-Za-z0-9@+.e]%', @Contents+' ' collate SQL_Latin1_General_CP850_Bin)
+1
SELECT
@start=PATINDEX('%[^A-Za-z0-9@+.e][A-Za-z0-9@+.e][\-]%', ' '+@contents collate SQL_Latin1_General_CP850_Bin)
-- Edited: add more condition [\-] in order to detect negative number 08-20-2014
--select @start,@end, LEN(@contents+'|'), @contents
SELECT
@Value=RTRIM(SUBSTRING(@contents, @start, @End-@Start)),
@Contents=RIGHT(@contents+' ', LEN(@contents+'|')-@end)
IF SUBSTRING(@value, 1, 7)='@object'
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, Object_ID, ValueType)
SELECT @name, @SequenceNo, @parent_ID, SUBSTRING(@value, 8, 5),
SUBSTRING(@value, 8, 5), 'object'
ELSE
IF SUBSTRING(@value, 1, 6)='@array'
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, Object_ID, ValueType)
SELECT @name, @SequenceNo, @parent_ID, SUBSTRING(@value, 7, 5),
SUBSTRING(@value, 7, 5), 'array'
ELSE
IF SUBSTRING(@value, 1, 7)='@string'
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, stringvalue, 'string'
FROM @strings
WHERE string_id=SUBSTRING(@value, 8, 5)
ELSE
IF @value IN ('true', 'false')
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, @value, 'boolean'
ELSE
IF @value='null'
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, @value, 'null'
ELSE
IF PATINDEX('%[^0-9]%', @value collate SQL_Latin1_General_CP850_Bin)>0
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, @value, 'real'
ELSE
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, @value, 'int'
if @Contents=' ' Select @SequenceNo=0
END
END
INSERT INTO @hierarchy (NAME, SequenceNo, parent_ID, StringValue, Object_ID, ValueType)
SELECT '-',1, NULL, '', @parent_id-1, @type
--
RETURN
END
GO
---------------------------------------------
-- dbo.fn_diagramobjects
CREATE FUNCTION dbo.fn_diagramobjects()
RETURNS int
WITH EXECUTE AS N'dbo'
AS
BEGIN
declare @id_upgraddiagrams int
declare @id_sysdiagrams int
declare @id_helpdiagrams int
declare @id_helpdiagramdefinition int
declare @id_creatediagram int
declare @id_renamediagram int
declare @id_alterdiagram int
declare @id_dropdiagram int
declare @InstalledObjects int
select @InstalledObjects = 0
select @id_upgraddiagrams = object_id(N'dbo.sp_upgraddiagrams'),
@id_sysdiagrams = object_id(N'dbo.sysdiagrams'),
@id_helpdiagrams = object_id(N'dbo.sp_helpdiagrams'),
@id_helpdiagramdefinition = object_id(N'dbo.sp_helpdiagramdefinition'),
@id_creatediagram = object_id(N'dbo.sp_creatediagram'),
@id_renamediagram = object_id(N'dbo.sp_renamediagram'),
@id_alterdiagram = object_id(N'dbo.sp_alterdiagram'),
@id_dropdiagram = object_id(N'dbo.sp_dropdiagram')
if @id_upgraddiagrams is not null
select @InstalledObjects = @InstalledObjects + 1
if @id_sysdiagrams is not null
select @InstalledObjects = @InstalledObjects + 2
if @id_helpdiagrams is not null
select @InstalledObjects = @InstalledObjects + 4
if @id_helpdiagramdefinition is not null
select @InstalledObjects = @InstalledObjects + 8
if @id_creatediagram is not null
select @InstalledObjects = @InstalledObjects + 16
if @id_renamediagram is not null
select @InstalledObjects = @InstalledObjects + 32
if @id_alterdiagram is not null
select @InstalledObjects = @InstalledObjects + 64
if @id_dropdiagram is not null
select @InstalledObjects = @InstalledObjects + 128
return @InstalledObjects
END
GO
---------------------------------------------
-- dbo.funcFindTSQLPerformanceFlaws
CREATE FUNCTION [dbo].[funcFindTSQLPerformanceFlaws] (
@SqlText NVARCHAR(MAX)
)
RETURNS @Results TABLE (
Severity SMALLINT,
Category NVARCHAR(MAX),
Description NVARCHAR(MAX)
)
AS
BEGIN
-- Rule 1 Avoid using Like ‘% %’
IF (@SqlText LIKE '%''[%]%[%]''%')
BEGIN
INSERT INTO @Results (Category, Description, Severity) VALUES ('Contains Open Ended Like', 'Avoid using Like ‘% %’', 2)
END
-- Rule 2 Avoid * ,Select only the required columns
IF (@SqlText LIKE '%SELECT%*,%FROM%' OR
@SqlText LIKE '%SELECT%,*%FROM%' OR
@SqlText LIKE '%SELECT%* ,%FROM%' OR
@SqlText LIKE '%SELECT%, *%FROM%' OR
@SqlText LIKE '%SELECT * FROM%') -- I'm sure there's a better way, but for now this will do, otherwise was getting too many false positives
BEGIN
INSERT INTO @Results (Category, Description, Severity) VALUES ('Select Star Used', 'Avoid * ,Select only the required columns', 2)
END
-- Rule 3 Don't use DISTINCT unless you have to
IF (@SqlText LIKE '%DISTINCT%')
BEGIN
INSERT INTO @Results (Category, Description, Severity) VALUES ('Distinct Used', 'Don''t use DISTINCT unless you have to', 1)
END
-- Rule 4 Think set based, instead of row by row (avoid cursor).
IF (@SqlText LIKE '%CURSOR%')
BEGIN
INSERT INTO @Results (Category, Description, Severity) VALUES('Cursor', 'Think set based, instead of row by row (avoid cursor).', 3)
END
-- Rule 5 Avoid using table variables, cursors or function calls that evaluate each row in where clause
IF (@SqlText LIKE '%INNER JOIN @%')
BEGIN
INSERT INTO @Results (Category, Description, Severity) VALUES('Table Variables', 'Avoid using table variables, cursors or function calls that evaluate each row in where clause', 3)
END
RETURN;
END
GO
---------------------------------------------
-- dbo.funcFindTSQLPerformanceFlawsForMigration
CREATE FUNCTION [dbo].[funcFindTSQLPerformanceFlawsForMigration] (
@MigrationName NVARCHAR(MAX)
)
RETURNS @Results TABLE (
Name NVARCHAR(MAX),
ObjectType NVARCHAR(MAX),
Severity NVARCHAR(MAX),
Category NVARCHAR(MAX),
Description NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @Sql NVARCHAR(MAX) = (SELECT ForwardScript FROM [migration].[MigrationLog] WHERE Name = @MigrationName)
INSERT INTO @Results(Name, Severity, ObjectType, Category, Description)
SELECT @MigrationName AS Name, CASE WHEN Severity = 3 THEN 'High'
WHEN Severity = 2 THEN 'Medium'
WHEN Severity = 1 THEN 'Low' ELSE 'N/A' END AS Severity, 'Migration' AS ObjectType, Category, Description
FROM [dbo].[funcFindTSQLPerformanceFlaws] (@Sql)
RETURN;
END
GO
---------------------------------------------
-- dbo.getScoreDimensionGuid
Create Function [dbo].[getScoreDimensionGuid]
(@DimensionName nvarchar(128))
Returns uniqueidentifier
AS
BEGIN
declare @DimGUID uniqueidentifier;
set @DimGUID = (select top 1 DimensionGUID from dbo.ScoreDimension where FriendlyName = @DimensionName)
return @DimGUID
End
GO
---------------------------------------------
-- dbo.intGetTransformationSourceField
CREATE FUNCTION [dbo].[intGetTransformationSourceField](
@sourceColumnId uniqueidentifier
)
RETURNS varchar(1000)
BEGIN
DECLARE @SourceField TABLE
(
RowNum int identity(1,1),
DataSourceID uniqueidentifier,
ColumnName nvarchar(1000),
Concatenator nvarchar(1000) default ' '
)
--Get all info from current Source Field
insert into @SourceField
select distinct DataSourceID,ColumnName,' ' from IntSourceField where SourceColumnId=@sourceColumnId
declare @transformationID uniqueidentifier
select @transformationID = DataSourceID from @SourceField
DECLARE @ResultTable TABLE (
TransformationID uniqueidentifier NOT NULL,
SourceDataSourceID uniqueidentifier NOT NULL,
Depth int NOT NULL
)
--Get all transformations from current Source Field
;WITH cte (TransformationID, SourceDataSourceID, Depth) AS
(
SELECT tl.TargetDataSourceID, tl.SourceDataSourceID, 1 as Depth
FROM
intTransformationLink tl
WHERE tl.TargetDataSourceID = @transformationID
UNION ALL
SELECT t.TargetDataSourceID, t.SourceDataSourceID, c.Depth + 1
FROM intTransformationLink t
INNER JOIN cte c ON t.TargetDataSourceID = c.SourceDataSourceID
)
insert into @ResultTable
select * from cte
DECLARE @SourceFields TABLE
(
ColumnName nvarchar(1000)
)
insert into @SourceFields
select distinct ColumnName from IntSourceField
where DataSourceID=(select top 1 SourceDataSourceID from @ResultTable WHERE Depth = (SELECT top 1 MAX(Depth) FROM @ResultTable))
--If exists Source file field with the same name, return it
declare @result nvarchar(1000)
select @result = ColumnName
from(
select top 1 ColumnName from @SourceFields where ColumnName like (select ColumnName from @SourceField)
) as r
DECLARE @numrows int
SELECT @numrows = MAX(Depth) FROM @ResultTable
DECLARE @i int
SET @i = 1
declare @xml XML
DECLARE @TransactionXml TABLE
(
NodeName nvarchar(1000),
NodeValue nvarchar(1000),
Alias nvarchar(1000)
)
--Go throw all transformations and look for Current Source Field
WHILE (@i <= @numrows)
BEGIN
select @xml = TRY_CONVERT(XML, (select TransformXml from IntTransformation where TransformationId = (select top 1 TransformationID from @ResultTable WHERE Depth = @i)))
If(@xml is null)
RETURN ''
declare @xmlNode as varchar(1000)
select @xmlNode = @xml.value('local-name(/*[1])','varchar(1000)')
delete from @TransactionXml
--Parse TransactionXml for receiving transformation type name, used column and alias
insert into @TransactionXml
SELECT
NodeName = C.value('local-name(.)', 'nvarchar(1000)'),
NodeValue = C.value('(.)[1]', 'nvarchar(1000)'),
Alias = C.value('./@ALIAS','nvarchar(1000)')
FROM @xml.nodes('/*[local-name(.)=sql:variable("@xmlNode")]/*') AS T(C)
DECLARE @numrowsFields int
SELECT @numrowsFields = count(1) FROM @SourceField
DECLARE @iFields int
SET @iFields = 1
DECLARE @firstSplit TABLE
(
name nvarchar(1000)
)
DECLARE @NewNames TABLE
(
RowNum int identity(1,1),
name nvarchar(1000),
Concatenator nvarchar(1000)
)
DECLARE @newName nvarchar(1000)
--Go throw all result fields (handle case when source field use calculated column with several fields)
WHILE (@iFields <= @numrowsFields)
BEGIN
select @newName = NULL
--check if column was renamed
select @newName = NodeValue from @TransactionXml where Alias like (select ColumnName from @SourceField where RowNum = @iFields)
IF @newName IS NOT NULL
BEGIN
update @SourceField set ColumnName = @newName where RowNum = @iFields
END
ELSE
BEGIN
--Handle calculated column
select @newName = NodeValue from @TransactionXml where NodeValue like (select ColumnName from @SourceField where RowNum = @iFields) AND NodeName like 'TARGETCOLUMN'
IF @newName IS NOT NULL
BEGIN
--parse calculated formula using []
select @newName = NodeValue from @TransactionXml where NodeName like 'CALCULATION'
delete from @firstSplit
insert into @firstSplit
select * from Split(@newName, '[')
delete from @NewNames
insert into @NewNames
select Left(name,CHARINDEX(']',name)-1), case when CHARINDEX(']',name) <> len(name) then replace(name,Left(name,CHARINDEX(']',name)-1),'') else ' ' end
from @firstSplit where name like '%]%'
DECLARE @iNewFields int
select @iNewFields = min(RowNum) from @NewNames
--select * from @NewNames
WHILE (@iNewFields <= (select max(RowNum) FROM @NewNames))
BEGIN
declare @Concatenator varchar(1000)
set @Concatenator=''
select @Concatenator = Concatenator from @NewNames where RowNum = @iNewFields
if(@Concatenator like '%||%||%')
begin
select @Concatenator = Component from Split(@Concatenator, '||') where (LTRIM(RTRIM(Component)) like '"%' or LTRIM(RTRIM(Component)) like '''%')
and (LTRIM(RTRIM(Component)) like '%"' or LTRIM(RTRIM(Component)) like '%''')
select @Concatenator = replace(@Concatenator, '"', '')
select @Concatenator = replace(@Concatenator, '''', '')
update @NewNames set Concatenator = @Concatenator where RowNum = @iNewFields
end
else
update @NewNames set Concatenator = ' ' where RowNum = @iNewFields
select @iNewFields = @iNewFields + 1
END
--update new name for Source Field
IF (select count(1) from @NewNames) > 0
BEGIN
update @SourceField set ColumnName = (select name from @NewNames where RowNum = (select min(RowNum) from @NewNames))
where RowNum = @iFields
update sf set sf.Concatenator = case when sf.Concatenator=' ' then nn.Concatenator else sf.Concatenator end
from @SourceField sf
join @NewNames nn on nn.name = sf.ColumnName
where sf.RowNum = @iFields and nn.Concatenator<>' '
END
--if calculated column contains more than one field, add it
IF (select count(1) from @NewNames) > 1
BEGIN
insert into @SourceField(ColumnName, Concatenator)
select distinct name, Concatenator from @NewNames
where RowNum <> 1 and name not in (select ColumnName from @SourceField)
END
END
END
SET @iFields = @iFields + 1
END
SET @i = @i + 1
END
IF(select count(*) from @SourceField) = 1
BEGIN
update @SourceField set Concatenator=''
END
--join all Source File fields that were used for current Source Field
select @result = STUFF((
SELECT ColumnName + Concatenator
FROM @SourceField
order by RowNum
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 0, '')
RETURN @result
END
GO
---------------------------------------------
-- dbo.intGetTransformationSourceFileList
CREATE FUNCTION dbo.intGetTransformationSourceFileList(
@transformationID uniqueidentifier
)
RETURNS @ResultTable TABLE (
SourceFileID uniqueidentifier NOT NULL
)
BEGIN
WITH cte (TransformationID, SourceDataSourceID, Depth) AS
(
SELECT TargetDataSourceID, SourceDataSourceID, 1 as Depth
FROM intTransformationLink
WHERE TargetDataSourceID = @transformationID
UNION ALL
SELECT t.TargetDataSourceID, t.SourceDataSourceID, c.Depth + 1
FROM intTransformationLink t
INNER JOIN cte c ON t.TargetDataSourceID = c.SourceDataSourceID
)
INSERT INTO @ResultTable
SELECT DISTINCT SourceDataSourceID as SourceFileID from cte
WHERE Depth = (SELECT MAX(Depth) FROM cte)
RETURN;
END
GO
---------------------------------------------
-- dbo.parseJSON
CREATE FUNCTION dbo.parseJSON( @JSON NVARCHAR(MAX))
RETURNS @hierarchy TABLE
(
element_id INT IDENTITY(1, 1) NOT NULL, /* internal surrogate primary key gives the order of parsing and the list order */
sequenceNo [int] NULL, /* the place in the sequence for the element */
parent_ID INT,/* if the element has a parent then it is in this column. The document is the ultimate parent, so you can get the structure from recursing from the document */
Object_ID INT,/* each list or object has an object id. This ties all elements to a parent. Lists are treated as objects here */
NAME NVARCHAR(2000),/* the name of the object */
StringValue NVARCHAR(MAX) NOT NULL,/*the string representation of the value of the element. */
ValueType VARCHAR(10) NOT null /* the declared type of the value represented as a string in StringValue*/
)
AS
BEGIN
DECLARE
@FirstObject INT, --the index of the first open bracket found in the JSON string
@OpenDelimiter INT,--the index of the next open bracket found in the JSON string
@NextOpenDelimiter INT,--the index of subsequent open bracket found in the JSON string
@NextCloseDelimiter INT,--the index of subsequent close bracket found in the JSON string
@Type NVARCHAR(10),--whether it denotes an object or an array
@NextCloseDelimiterChar CHAR(1),--either a '}' or a ']'
@Contents NVARCHAR(MAX), --the unparsed contents of the bracketed expression
@Start INT, --index of the start of the token that you are parsing
@end INT,--index of the end of the token that you are parsing
@param INT,--the parameter at the end of the next Object/Array token
@EndOfName INT,--the index of the start of the parameter at end of Object/Array token
@token NVARCHAR(200),--either a string or object
@value NVARCHAR(MAX), -- the value as a string
@SequenceNo int, -- the sequence number within a list
@name NVARCHAR(200), --the name as a string
@parent_ID INT,--the next parent ID to allocate
@lenJSON INT,--the current length of the JSON String
@characters NCHAR(36),--used to convert hex to decimal
@result BIGINT,--the value of the hex symbol being parsed
@index SMALLINT,--used for parsing the hex value
@Escape INT --the index of the next escape character
DECLARE @Strings TABLE /* in this temporary table we keep all strings, even the names of the elements, since they are 'escaped' in a different way, and may contain, unescaped, brackets denoting objects or lists. These are replaced in the JSON string by tokens representing the string */
(
String_ID INT IDENTITY(1, 1),
StringValue NVARCHAR(MAX)
)
SELECT--initialise the characters to convert hex to ascii
@characters='0123456789abcdefghijklmnopqrstuvwxyz',
@SequenceNo=0, --set the sequence no. to something sensible.
/* firstly we process all strings. This is done because [{} and ] aren't escaped in strings, which complicates an iterative parse. */
@parent_ID=0;
WHILE 1=1 --forever until there is nothing more to do
BEGIN
SELECT
@start=PATINDEX('%[^a-zA-Z]["]%', @json collate SQL_Latin1_General_CP850_Bin);--next delimited string
IF @start=0 BREAK --no more so drop through the WHILE loop
IF SUBSTRING(@json, @start+1, 1)='"'
BEGIN --Delimited Name
SET @start=@Start+1;
SET @end=PATINDEX('%[^\]["]%', RIGHT(@json, LEN(@json+'|')-@start) collate SQL_Latin1_General_CP850_Bin);
END
IF @end=0 --no end delimiter to last string
BREAK --no more
SELECT @token=SUBSTRING(@json, @start+1, @end-1)
--now put in the escaped control characters
SELECT @token=REPLACE(@token, FROMString, TOString)
FROM
(SELECT
'\"' AS FromString, '"' AS ToString
UNION ALL SELECT '\\', '\'
UNION ALL SELECT '\/', '/'
UNION ALL SELECT '\b', CHAR(08)
UNION ALL SELECT '\f', CHAR(12)
UNION ALL SELECT '\n', CHAR(10)
UNION ALL SELECT '\r', CHAR(13)
UNION ALL SELECT '\t', CHAR(09)
) substitutions
SELECT @result=0, @escape=1
--Begin to take out any hex escape codes
WHILE @escape>0
BEGIN
SELECT @index=0,
--find the next hex escape sequence
@escape=PATINDEX('%\x[0-9a-f][0-9a-f][0-9a-f][0-9a-f]%', @token collate SQL_Latin1_General_CP850_Bin)
IF @escape>0 --if there is one
BEGIN
WHILE @index<4 --there are always four digits to a \x sequence
BEGIN
SELECT --determine its value
@result=@result+POWER(16, @index)
*(CHARINDEX(SUBSTRING(@token, @escape+2+3-@index, 1),
@characters)-1), @index=@index+1 ;
END
-- and replace the hex sequence by its unicode value
SELECT @token=STUFF(@token, @escape, 6, NCHAR(@result))
END
END
--now store the string away
INSERT INTO @Strings (StringValue) SELECT @token
-- and replace the string with a token
SELECT @JSON=STUFF(@json, @start, @end+1,
'@string'+CONVERT(NVARCHAR(5), @@identity))
END
-- all strings are now removed. Now we find the first leaf.
WHILE 1=1 --forever until there is nothing more to do
BEGIN
SELECT @parent_ID=@parent_ID+1
--find the first object or list by looking for the open bracket
SELECT @FirstObject=PATINDEX('%[{[[]%', @json collate SQL_Latin1_General_CP850_Bin)--object or array
IF @FirstObject = 0 BREAK
IF (SUBSTRING(@json, @FirstObject, 1)='{')
SELECT @NextCloseDelimiterChar='}', @type='object'
ELSE
SELECT @NextCloseDelimiterChar=']', @type='array'
SELECT @OpenDelimiter=@firstObject
WHILE 1=1 --find the innermost object or list...
BEGIN
SELECT
@lenJSON=LEN(@JSON+'|')-1
--find the matching close-delimiter proceeding after the open-delimiter
SELECT
@NextCloseDelimiter=CHARINDEX(@NextCloseDelimiterChar, @json,
@OpenDelimiter+1)
--is there an intervening open-delimiter of either type
SELECT @NextOpenDelimiter=PATINDEX('%[{[[]%',
RIGHT(@json, @lenJSON-@OpenDelimiter)collate SQL_Latin1_General_CP850_Bin)--object
IF @NextOpenDelimiter=0
BREAK
SELECT @NextOpenDelimiter=@NextOpenDelimiter+@OpenDelimiter
IF @NextCloseDelimiter<@NextOpenDelimiter
BREAK
IF SUBSTRING(@json, @NextOpenDelimiter, 1)='{'
SELECT @NextCloseDelimiterChar='}', @type='object'
ELSE
SELECT @NextCloseDelimiterChar=']', @type='array'
SELECT @OpenDelimiter=@NextOpenDelimiter
END
---and parse out the list or name/value pairs
SELECT
@contents=SUBSTRING(@json, @OpenDelimiter+1,
@NextCloseDelimiter-@OpenDelimiter-1)
SELECT
@JSON=STUFF(@json, @OpenDelimiter,
@NextCloseDelimiter-@OpenDelimiter+1,
'@'+@type+CONVERT(NVARCHAR(5), @parent_ID))
WHILE (PATINDEX('%[A-Za-z0-9@+.e]%', @contents collate SQL_Latin1_General_CP850_Bin))<>0
BEGIN
IF @Type='Object' --it will be a 0-n list containing a string followed by a string, number,boolean, or null
BEGIN
SELECT
@SequenceNo=0,@end=CHARINDEX(':', ' '+@contents)--if there is anything, it will be a string-based name.
SELECT @start=PATINDEX('%[^A-Za-z@][@]%', ' '+@contents collate SQL_Latin1_General_CP850_Bin)--AAAAAAAA
SELECT @token=SUBSTRING(' '+@contents, @start+1, @End-@Start-1),
@endofname=PATINDEX('%[0-9]%', @token collate SQL_Latin1_General_CP850_Bin),
@param=RIGHT(@token, LEN(@token)-@endofname+1)
SELECT
@token=LEFT(@token, @endofname-1),
@Contents=RIGHT(' '+@contents, LEN(' '+@contents+'|')-@end-1)
SELECT @name=stringvalue FROM @strings
WHERE string_id=@param --fetch the name
END
ELSE
SELECT @Name=null,@SequenceNo=@SequenceNo+1
SELECT
@end=CHARINDEX(',', @contents)-- a string-token, object-token, list-token, number,boolean, or null
IF @end=0
SELECT @end=PATINDEX('%[A-Za-z0-9@+.e][^A-Za-z0-9@+.e]%', @Contents+' ' collate SQL_Latin1_General_CP850_Bin)
+1
SELECT
@start=PATINDEX('%[^A-Za-z0-9@+.e][A-Za-z0-9@+.e]%', ' '+@contents collate SQL_Latin1_General_CP850_Bin)
--select @start,@end, LEN(@contents+'|'), @contents
SELECT
@Value=RTRIM(SUBSTRING(@contents, @start, @End-@Start)),
@Contents=RIGHT(@contents+' ', LEN(@contents+'|')-@end)
IF SUBSTRING(@value, 1, 7)='@object'
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, Object_ID, ValueType)
SELECT @name, @SequenceNo, @parent_ID, SUBSTRING(@value, 8, 5),
SUBSTRING(@value, 8, 5), 'object'
ELSE
IF SUBSTRING(@value, 1, 6)='@array'
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, Object_ID, ValueType)
SELECT @name, @SequenceNo, @parent_ID, SUBSTRING(@value, 7, 5),
SUBSTRING(@value, 7, 5), 'array'
ELSE
IF SUBSTRING(@value, 1, 7)='@string'
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, stringvalue, 'string'
FROM @strings
WHERE string_id=SUBSTRING(@value, 8, 5)
ELSE
IF @value IN ('true', 'false')
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, @value, 'boolean'
ELSE
IF @value='null'
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, @value, 'null'
ELSE
IF PATINDEX('%[^0-9]%', @value collate SQL_Latin1_General_CP850_Bin)>0
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, @value, 'real'
ELSE
INSERT INTO @hierarchy
(NAME, SequenceNo, parent_ID, StringValue, ValueType)
SELECT @name, @SequenceNo, @parent_ID, @value, 'int'
if @Contents=' ' Select @SequenceNo=0
END
END
INSERT INTO @hierarchy (NAME, SequenceNo, parent_ID, StringValue, Object_ID, ValueType)
SELECT '-',1, NULL, '', @parent_id-1, @type
--
RETURN
END
GO
---------------------------------------------
-- dbo.ufn_GetS3ACLByUserGuid
CREATE FUNCTION dbo.ufn_GetS3ACLByUserGuid
(
@UserGuid UNIQUEIDENTIFIER
)
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN
(
SELECT
acl.LootID,
acl.LootGroupPrefix,
case when sum(acl.ReadAllowpts) > sum(acl.ReadDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsReadable,
case when sum(acl.WriteAllowpts) > sum(acl.WriteDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsWritable,
case when sum(acl.SecureAllowpts) > sum(acl.SecureDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsSecurable,
case when sum(acl.DeleteAllowpts) > sum(acl.DeleteDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsDeletable,
case when sum(acl.CreateAllowpts) > sum(acl.CreateDenypts) then CAST(1 as bit) else CAST(0 as bit) end as IsCreatable
FROM
(
SELECT
L.LootID,
L.LootGroupPrefix,
ReadAllowPts,
ReadDenyPts,
WriteAllowPts,
WriteDenyPts,
SecureAllowPts,
SecureDenyPts,
DeleteAllowPts,
DeleteDenyPts,
CreateAllowPts,
CreateDenyPts
FROM
dbo.S3LootGroup LG WITH (READUNCOMMITTED)
INNER JOIN dbo.S3Loot L WITH (READUNCOMMITTED) ON L.LootID = LG.LootID
INNER JOIN dbo.S3RoleAssignment RA WITH (READUNCOMMITTED) ON LG.LootGroupID = RA.LootGroupID
INNER JOIN dbo.S3Permission P WITH (READUNCOMMITTED) ON RA.RoleID = P.RoleID and L.PermissionSetID = P.PermissionSetID
INNER JOIN dbo.S3IdentityLink il WITH (READUNCOMMITTED) ON RA.identityguid = il.GroupingGUID
WHERE il.MemberGUID = @UserGuid
) AS acl
GROUP BY
acl.LootID,
acl.LootGroupPrefix
);
GO
---------------------------------------------
-- dbo.ufn_GetS3ACLSimpleReadable
CREATE FUNCTION dbo.ufn_GetS3ACLSimpleReadable
(
@UserGuid UNIQUEIDENTIFIER
)
RETURNS TABLE
AS
RETURN
(
SELECT DISTINCT P.LootID
FROM dbo.UserProfile U WITH (READUNCOMMITTED)
INNER JOIN dbo.S3IdentityLink IL WITH (READUNCOMMITTED)
ON U.UserGUID = IL.MemberGUID
INNER JOIN dbo.S3SimplePermission P WITH (READUNCOMMITTED)
ON P.IdentityGUID = IL.GroupingGUID
WHERE U.UserGUID = @UserGuid AND P.ReadValue = 1
);
GO
---------------------------------------------