Summary Table
Categories |
Total Count |
PII |
0 |
URL |
0 |
DNS |
0 |
EKL |
0 |
IP |
0 |
PORT |
0 |
VsID |
0 |
CF |
0 |
AI |
0 |
VPD |
0 |
PL |
0 |
Other |
0 |
File Content
?CREATE TABLE dbo.StopCodes
(
--source:
--A06/SQL52, SPV.Dim.StopCode
--fields
StopCodeID int IDENTITY(1,1) NOT NULL, --EPRS assigned (PK)
StationID smallint NOT NULL, --EPRS assigned (FK), references Stations, break out sta6a choices
RecordStatusID tinyint NULL, --EPRS assigned (FK), references RecordStatuses, OpsCode
BatchLogID bigint NULL, --EPRS assigned (FK), references BatchLogs, BatchLogID
CDWStopCodeSysNumber int NULL, --StopCodeSID
CDWExtractBatchNumber int NULL, --ExtractBatchID
StopCodeIEN int NOT NULL, --StopCodeIEN
ConvertToStopCodeIEN int NULL, --ConvertToStopCodeIEN
StopCode smallint NULL, --StopCode
StopCodeName varchar(50), --StopCodeName
RestrictionType varchar(10), --RestrictionType, replace [E = either, P = primary, S = secondary]
IsInactive bit NOT NULL, --InactiveDate, change to 1 (true) or 0 (false), we don't care about the date itself
--primary key
CONSTRAINT PK_StopCodes PRIMARY KEY CLUSTERED
(
StopCodeID ASC
)
)
ON DefinitionData
--when using clustered columnstore index, can't set data compression to PAGE
--using data compression, we have more than 10k recs but way less than 1 million recs
WITH (DATA_COMPRESSION = PAGE)
GO
/*
StopCodeSID int NOT NULL, --CDWStopCodeSysNumber
StopCodeIEN varchar(50) NOT NULL, --StopCodeIEN
Sta3n smallint NULL, --Stations, StationID
StopCode smallint NULL, --StopCode
StopCodeName varchar(50) NULL, --StopCodeName
InactiveDate date NULL, --IsInactive
ConvertToStopCodeIEN varchar(50) NULL, --ConvertToStopCodeIEN
CostDistributionCenter varchar(50) NULL, --ignore
RestrictionType char(1) NULL, --RestrictionType, do a transformation, see above
RestrictionDate date NULL, --ignore
ETLBatchID int NULL, --ignore
OpCode char(1) NULL, --RecordStatuses, RecordStatusID
VistaCreateDate datetime NULL, --ignore
VistaEditDate datetime NULL, --ignore
ExtractBatchID BIGINT NULL, --CDWExtractBatchNumber
BatchLogID bigint --BatchLogID
*/
--foreign keys
ALTER TABLE dbo.StopCodes
ADD CONSTRAINT FK_StopCodes_Stations
FOREIGN KEY (StationID)
REFERENCES dbo.Stations (StationID)
GO
ALTER TABLE dbo.StopCodes
ADD CONSTRAINT FK_StopCodes_RecordStatuses
FOREIGN KEY (RecordStatusID)
REFERENCES dbo.RecordStatuses (RecordStatusID)
GO
ALTER TABLE dbo.StopCodes
ADD CONSTRAINT FK_StopCodes_BatchLogs
FOREIGN KEY (BatchLogID)
REFERENCES dbo.BatchLogs (BatchLogID)
GO
--indexes
CREATE NONCLUSTERED INDEX IX_StopCodes_StationID ON dbo.StopCodes
(
StationID
) WITH (
PAD_INDEX = ON, --If want to use a Fill Factor, then PAD_INDEX must = ON
FILLFACTOR = 90, --100 = max fill; set to 90 if going to insert new values incrementally; 100 if doing bulk load
SORT_IN_TEMPDB = ON, -- sorts the index in the TempDB; default = OFF
IGNORE_DUP_KEY = OFF,
STATISTICS_NORECOMPUTE = OFF,
STATISTICS_INCREMENTAL = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON,
MAXDOP = 0, --degrees of parallelism, controls how many CPUs to use; 0 = default (all available), max = 64
DATA_COMPRESSION = PAGE --use page compression; default = NONE
)
ON DefinitionIndex
GO
--constraints
ALTER TABLE dbo.StopCodes
ADD CONSTRAINT DF_StopCodes_IsInactive
DEFAULT 0
FOR IsInactive
GO
--Metadata descriptions for each field
EXECUTE sp_addextendedproperty
N'MS_Description', N'Primary Key, unique to EPRS, source: Dim.StopCode',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'StopCodeID'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'Foreign Key, unique to EPRS, relates to Stations table; source: sta3n or derived sta6a',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'StationID'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'Foreign Key, unique to EPRS, relates to RecordStatuses table; source: opscode',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'RecordStatusID'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'Foreign key, unique to EPRS, relates to Batch Logs table',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'BatchLogID'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'CDW Stop Code system number; source: StopCodeSID',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'CDWStopCodeSysNumber'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'CDW Extract Batch number; source: ExtractBatchID',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'CDWExtractBatchNumber'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'Stop Code IEN; source: StopCodeIEN',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'StopCodeIEN'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'Identifies what new stop code the record is linked to going forward; source: ConvertToStopCodeIEN',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'ConvertToStopCodeIEN'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'Numerical/abbreviation code; source: StopCode',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'StopCode'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'Name/description of the stop code; source: StopCodeName',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'StopCodeName'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'Identifies if the stop code is only primary or secondary or either/both; source: RestrictionType',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'RestrictionType'
GO
EXECUTE sp_addextendedproperty
N'MS_Description', N'True/false is the record inactive (1=true, 0=false)',
N'SCHEMA', N'dbo',
N'TABLE', N'StopCodes',
N'COLUMN', N'IsInactive'
GO