USP_VALIDATION_MISSINGCOMMENTS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@INCLUDEEXTENSIONS | bit | IN |
Definition
Copy
create procedure [BBDW].[USP_VALIDATION_MISSINGCOMMENTS] (@INCLUDEEXTENSIONS bit)
as
declare @EXCEPTIONS as int;
declare @TABLE as table([OBJECTNAME] nvarchar(255), [COLUMNNAME] nvarchar(255));
--Check for missing comments on tables
insert into @TABLE([OBJECTNAME])
select [TABLE]
from
(
select
s.[name] as [SCHEMA],
t.[name] as [TABLE]
from sys.tables as t
inner join sys.schemas s on t.schema_id = s.schema_id
inner join sys.columns as c on c.object_id = t.object_id
where
(t.[name] like 'DIM_%' or t.[name] like 'FACT_%' or (@INCLUDEEXTENSIONS = 1 and t.[name] like 'USR_%'))
and (@INCLUDEEXTENSIONS = 1 or t.[name] not like '%_EXT')
except
select
s.[name] as [SCHEMA],
t.[name] as [TABLE]
from sys.extended_properties ep
inner join sys.tables t on ep.major_id = t.object_id
inner join sys.schemas s on t.schema_id = s.schema_id
where ep.[class] = 1 and ep.[name] = 'MS_Description'
and ep.[minor_id] = 0 and len(cast(ep.[value] as nvarchar(max))) > 0
) as [COMMENTS];
insert into BBDW.[VALIDATIONEXCEPTIONS]([TESTNAME], [EXCEPTION])
select 'Missing Comments', 'The table [' + [OBJECTNAME] + '] does not contain a comment'
from @TABLE;
set @EXCEPTIONS = (select count(1) from @TABLE);
delete from @TABLE;
--Check for missing comments on table columns
insert into @TABLE([OBJECTNAME], [COLUMNNAME])
select [TABLE], [COLUMN]
from
(
select
s.[name] as [SCHEMA],
t.[name] as [TABLE],
c.[name] as [COLUMN]
from sys.tables as t
inner join sys.schemas s on t.schema_id = s.schema_id
inner join sys.columns as c on c.object_id = t.object_id
where (t.[name] like 'DIM_%' or t.[name] like 'FACT_%' or (@INCLUDEEXTENSIONS = 1 and t.[name] like 'USR_%'))
and (@INCLUDEEXTENSIONS = 1 or t.[name] not like '%_EXT')
except
select
s.[name] as [SCHEMA],
t.[name] as [TABLE],
c.[name] as [COLUMN]
from sys.extended_properties as ep
inner join sys.tables as t on ep.major_id = t.object_id
inner join sys.schemas s on t.schema_id = s.schema_id
inner join sys.columns as c on ep.major_id = c.object_id and ep.minor_id = c.column_id
where ep.[class] = 1 and ep.[name] = 'MS_Description'
and len(cast(ep.[value] as nvarchar(max))) > 0
) as [COMMENTS]
insert into BBDW.[VALIDATIONEXCEPTIONS]([TESTNAME], [EXCEPTION])
select 'Missing Comments', 'The column ['+ [COLUMNNAME] + '] on table [' + [OBJECTNAME] + '] does not contain a comment'
from @TABLE;
set @EXCEPTIONS = @EXCEPTIONS + (select count(1) from @TABLE);
delete from @TABLE;
--Check for missing comments on views
insert into @TABLE([OBJECTNAME])
select [VIEW]
from
(
select
s.[name] as [SCHEMA],
v.[name] as [VIEW]
from sys.views as v
inner join sys.schemas s on v.schema_id = s.schema_id
inner join sys.columns as c on c.object_id = v.object_id
where
(v.[name] like 'v_DIM_%' or v.[name] like 'v_FACT_%' or (@INCLUDEEXTENSIONS = 1 and (v.[name] like 'USR_v_DIM_%' or v.[name] like 'USR_v_FACT_%')))
and
(@INCLUDEEXTENSIONS = 1 or v.[name] not like '%_EXT')
except
select
s.[name] as [SCHEMA],
v.[name] as [VIEW]
from sys.extended_properties ep
inner join sys.views v on ep.major_id = v.object_id
inner join sys.schemas s on v.schema_id = s.schema_id
where ep.[class] = 1 and ep.[name] = 'MS_Description'
and ep.[minor_id] = 0 and len(cast(ep.[value] as nvarchar(max))) > 0
) as [COMMENTS];
insert into BBDW.[VALIDATIONEXCEPTIONS]([TESTNAME], [EXCEPTION])
select 'Missing Comments', 'The view [' + [OBJECTNAME] + '] does not contain a comment'
from @TABLE;
set @EXCEPTIONS = (select count(1) from @TABLE);
delete from @TABLE;
--Check for missing comments on view columns
insert into @TABLE([OBJECTNAME], [COLUMNNAME])
select [VIEW], [COLUMN]
from
(
select
s.[name] as [SCHEMA],
v.[name] as [VIEW],
c.[name] as [COLUMN]
from sys.views as v
inner join sys.schemas s on v.schema_id = s.schema_id
inner join sys.columns as c on c.object_id = v.object_id
where
(v.[name] like 'v_DIM_%' or v.[name] like 'v_FACT_%' or (@INCLUDEEXTENSIONS = 1 and (v.[name] like 'USR_v_DIM_%' or v.[name] like 'USR_v_FACT_%')))
and
(@INCLUDEEXTENSIONS = 1 or v.[name] not like '%_EXT')
except
select
s.[name] as [SCHEMA],
v.[name] as [VIEW],
c.[name] as [COLUMN]
from sys.extended_properties as ep
inner join sys.views as v on ep.major_id = v.object_id
inner join sys.schemas s on v.schema_id = s.schema_id
inner join sys.columns as c on ep.major_id = c.object_id and ep.minor_id = c.column_id
where ep.[class] = 1 and ep.[name] = 'MS_Description'
and len(cast(ep.[value] as nvarchar(max))) > 0
) as [COMMENTS];
insert into BBDW.[VALIDATIONEXCEPTIONS]([TESTNAME], [EXCEPTION])
select 'Missing Comments', 'The column ['+ [COLUMNNAME] + '] on view [' + [OBJECTNAME] + '] does not contain a comment'
from @TABLE;
set @EXCEPTIONS = @EXCEPTIONS + (select count(1) from @TABLE);
select @EXCEPTIONS;