【发布时间】:2021-12-22 06:40:14
【问题描述】:
我目前正在尝试找出一个 MSSQL 数据库。
很多报告都在使用日期维度表,我可以看到日期在 2022 年 1 月 2 日停止。所以基本上它是一个定时炸弹,我需要在上面再添加几年。
创建此日期维度的人没有超过 2022 年 1 月 2 日。
我想再增加 5 或 10 年。这可以在 SSMS 中完成吗?还是在 Excel 中创建表格,然后导入并替换当前日期维度会更好?
以下是此日期维度表中某些列的示例:
为此增加额外年限的最佳方法是什么? SQL Server v10.5
表结构:
USE [MPH_DWH_Cork_Activity]
GO
/****** Object: Table [dbo].[bi_dim_date] Script Date: 11/9/2021 3:06:49 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[bi_dim_date](
[DateKey] [datetime] NULL,
[DateInt] [int] NULL,
[YearKey] [int] NULL,
[QuarterOfYear] [int] NULL,
[MPH_MonthOfYear] [int] NULL,
[MonthOfYear] [int] NULL,
[DayOfMonth] [int] NULL,
[MonthName] [varchar](16) NULL,
[MonthInCalendar] [datetime] NULL,
[QuarterInCalendar] [varchar](16) NULL,
[DayOfWeekName] [varchar](16) NULL,
[DayInWeek] [int] NULL,
[Week Num] [int] NULL,
[DateKey1] [datetime] NOT NULL,
[Year] [int] NULL,
[YearID] [int] NULL,
[WeekID] [int] NULL,
[First Date in Rolling 4 Week Period] [datetime] NULL,
[Last Date in Rolling 4 Week Period] [datetime] NULL,
CONSTRAINT [PK__bi_dim_d__6690D80A2A4B4B5E] PRIMARY KEY CLUSTERED
(
[DateKey1] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__DateI__22401542] DEFAULT (NULL) FOR [DateInt]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__YearK__2334397B] DEFAULT (NULL) FOR [YearKey]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__Quart__24285DB4] DEFAULT (NULL) FOR [QuarterOfYear]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__Month__251C81ED] DEFAULT (NULL) FOR [MonthOfYear]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__DayOf__2610A626] DEFAULT (NULL) FOR [DayOfMonth]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__Month__2704CA5F] DEFAULT (NULL) FOR [MonthName]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__Quart__28ED12D1] DEFAULT (NULL) FOR [QuarterInCalendar]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__DayOf__29E1370A] DEFAULT (NULL) FOR [DayOfWeekName]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__DayIn__2AD55B43] DEFAULT (NULL) FOR [DayInWeek]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__Week __2BC97F7C] DEFAULT (NULL) FOR [Week Num]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_dat__Year__2CBDA3B5] DEFAULT (NULL) FOR [Year]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__YearI__2DB1C7EE] DEFAULT (NULL) FOR [YearID]
GO
ALTER TABLE [dbo].[bi_dim_date] ADD CONSTRAINT [DF__bi_dim_da__WeekI__2EA5EC27] DEFAULT (NULL) FOR [WeekID]
GO
【问题讨论】:
-
当你有维度表时,通常意味着这些表实际上并不是生产数据,而是一些数据仓库产品在生产之外创建的提取,数据仓库产品应该能够管理这个为你。情况并非总是如此,但它很常见,您应该先看看那里。
标签: sql sql-server ssms