CREATE PROCEDURE [dbo].[CHECK_STRUCT_METADATA]
AS
BEGIN
DECLARE
@var_err_code int,
@var_err_table_name nvarchar(100),
@var_pk1_field_value nvarchar(100),
@var_pk2_field_value nvarchar(100),
@var_err_field_name nvarchar(100),
@var_err_field_value nvarchar(255),
@var_err_message nvarchar(255),
@var_err_resolution nvarchar(255)
SET @var_err_code = 100
SET @var_err_message = 'Warning: table/view has no fields defined in arg_field_def'
SET @var_err_resolution = 'add field records for table/view'
SET @var_err_table_name = 'arg_table_def'
SET @var_err_field_name = 'table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT td.TABLE_NAME
FROM
dbo.ARG_TABLE_DEF AS td
FULL OUTER JOIN dbo.ARG_FIELD_DEF AS fd
ON fd.TABLE_NAME = td.TABLE_NAME
WHERE td.TABLE_NAME IS NOT NULL AND fd.TABLE_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_WARNINGS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 101
SET @var_err_message = 'Warning: table has no indexes defined in arg_index_def'
SET @var_err_resolution = 'add index records for table indexes/primary keys'
SET @var_err_table_name = 'arg_table_def'
SET @var_err_field_name = 'table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT td.TABLE_NAME
FROM
dbo.ARG_TABLE_DEF AS td
FULL OUTER JOIN dbo.ARG_INDEX_DEF AS id
ON id.TABLE_NAME = td.TABLE_NAME
WHERE
td.TABLE_NAME IS NOT NULL AND
id.TABLE_NAME IS NULL AND
td.VIRTUAL_TABLE = 0
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_WARNINGS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 102
SET @var_err_message = 'Warning: table/view has no classes defined in arg_class_def'
SET @var_err_resolution = 'add class records for table/view'
SET @var_err_table_name = 'arg_table_def'
SET @var_err_field_name = 'table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT td.TABLE_NAME
FROM
dbo.ARG_TABLE_DEF AS td
FULL OUTER JOIN dbo.ARG_CLASS_DEF AS cd
ON cd.TABLE_NAME = td.TABLE_NAME
WHERE td.TABLE_NAME IS NOT NULL AND cd.TABLE_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_WARNINGS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 103
SET @var_err_message = 'Warning: table/view has no attributes defined in arg_attribute_def'
SET @var_err_resolution = 'add attribute records for table/view'
SET @var_err_table_name = 'arg_table_def'
SET @var_err_field_name = 'table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT td.TABLE_NAME
FROM
dbo.ARG_TABLE_DEF AS td
FULL OUTER JOIN dbo.ARG_ATTRIBUTE_DEF AS ad
ON ad.TABLE_NAME = td.TABLE_NAME
WHERE td.TABLE_NAME IS NOT NULL AND ad.TABLE_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_WARNINGS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 104
SET @var_err_message = 'Warning: table description for table is blank'
SET @var_err_resolution = 'add table description'
SET @var_err_table_name = 'arg_table_def'
SET @var_err_field_name = 'table_description'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT ARG_TABLE_DEF.TABLE_NAME, ARG_TABLE_DEF.TABLE_DESCRIPTION
FROM dbo.ARG_TABLE_DEF
WHERE ARG_TABLE_DEF.TABLE_DESCRIPTION IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_WARNINGS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 105
SET @var_err_message = 'table does not exist in the database'
SET @var_err_resolution = 'add table or remove arg_table_def record'
SET @var_err_table_name = 'arg_table_def'
SET @var_err_field_name = 'table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT td.TABLE_NAME
FROM
dbo.ARG_TABLE_DEF AS td
FULL OUTER JOIN dbo.USER_TABLES AS s
ON s.table_name = upper(td.TABLE_NAME)
WHERE
td.TABLE_NAME IS NOT NULL AND
td.VIRTUAL_TABLE = 0 AND
s.table_name IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 106
SET @var_err_message = 'view does not exist in the database'
SET @var_err_resolution = 'add view or remove arg_table_def record'
SET @var_err_table_name = 'arg_table_def'
SET @var_err_field_name = 'table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
SET @var_err_code = 200
SET @var_err_message = 'table_name does not exist in arg_table_def'
SET @var_err_resolution = 'correct field value or add table record'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT fd.TABLE_NAME, fd.FIELD_NAME
FROM
dbo.ARG_FIELD_DEF AS fd
FULL OUTER JOIN dbo.ARG_TABLE_DEF AS td
ON td.TABLE_NAME = fd.TABLE_NAME
WHERE fd.TABLE_NAME IS NOT NULL AND td.TABLE_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 201
SET @var_err_message = 'actual_table_name does not exist in arg_table_def'
SET @var_err_resolution = 'correct field value or add table record'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'actual_table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT fd.TABLE_NAME, fd.FIELD_NAME, fd.ACTUAL_TABLE_NAME
FROM
dbo.ARG_FIELD_DEF AS fd
FULL OUTER JOIN dbo.ARG_TABLE_DEF AS td
ON td.TABLE_NAME = fd.ACTUAL_TABLE_NAME
WHERE fd.ACTUAL_TABLE_NAME IS NOT NULL AND td.TABLE_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 202
SET @var_err_message = 'actual_field_name does not exist in arg_field_def'
SET @var_err_resolution = 'correct field value or add field record'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'actual_field_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT fd1.TABLE_NAME, fd1.FIELD_NAME, fd1.ACTUAL_FIELD_NAME
FROM
dbo.ARG_FIELD_DEF AS fd1
FULL OUTER JOIN dbo.ARG_FIELD_DEF AS fd2
ON fd2.TABLE_NAME = fd1.ACTUAL_TABLE_NAME AND fd2.FIELD_NAME = fd1.ACTUAL_FIELD_NAME
WHERE fd1.ACTUAL_TABLE_NAME IS NOT NULL AND fd2.FIELD_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 203
SET @var_err_message = 'Warning: field has no attributes defined in arg_attribute_def'
SET @var_err_resolution = 'add attribute records for field'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'field_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT fd.TABLE_NAME, fd.FIELD_NAME
FROM
dbo.ARG_FIELD_DEF AS fd
LEFT OUTER JOIN dbo.ARG_ATTRIBUTE_DEF AS ad
ON ad.TABLE_NAME = fd.TABLE_NAME AND ad.FIELD_NAME = fd.FIELD_NAME
WHERE ad.FIELD_NAME IS NULL AND fd.FIELD_NAME IS NOT NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_WARNINGS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 204
SET @var_err_message = 'Warning: field description for field is blank'
SET @var_err_resolution = 'add field description'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'field_description'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT ARG_FIELD_DEF.TABLE_NAME, ARG_FIELD_DEF.FIELD_NAME, ARG_FIELD_DEF.FIELD_DESCRIPTION
FROM dbo.ARG_FIELD_DEF
WHERE ARG_FIELD_DEF.FIELD_DESCRIPTION IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_WARNINGS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 205
SET @var_err_message = 'actual table and field must be blank for a table'
SET @var_err_resolution = 'set actual table and field to null'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'actual_table_name/actual_field_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
SET @var_err_code = 206
SET @var_err_message = 'actual table and field must be specified for a view'
SET @var_err_resolution = 'add values for actual table and field'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'actual_table_name/actual_field_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
SET @var_err_code = 207
SET @var_err_message = 'data_type, data_size, field_required, primary_key and foreign_key must be specified for a table'
SET @var_err_resolution = 'add values for field attributes'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = NULL
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
SET @var_err_code = 208
SET @var_err_message = 'Warning: data_type, data_size, field_required, primary_key and foreign_key must be null for a view'
SET @var_err_resolution = 'set field attributes to null'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = NULL
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
SET @var_err_code = 210
SET @var_err_message = 'field does not exist in table'
SET @var_err_resolution = 'add field to table or remove arg_field_def record'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'field_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
SET @var_err_code = 211
SET @var_err_message = 'data_size does not match field size'
SET @var_err_resolution = 'correct data_size value'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'data_size'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
SET @var_err_code = 212
SET @var_err_message = 'data_size not specified for field'
SET @var_err_resolution = 'correct data_size value'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'data_size'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT ARG_FIELD_DEF.TABLE_NAME, ARG_FIELD_DEF.FIELD_NAME, ARG_FIELD_DEF.DATA_SIZE
FROM dbo.ARG_FIELD_DEF
WHERE ARG_FIELD_DEF.DATA_TYPE IN ( 9, 10 ) AND ARG_FIELD_DEF.DATA_SIZE = 0
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 213
SET @var_err_message = 'data_size should be 0 for given data_type'
SET @var_err_resolution = 'correct data_size value'
SET @var_err_table_name = 'arg_field_def'
SET @var_err_field_name = 'data_size'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT ARG_FIELD_DEF.TABLE_NAME, ARG_FIELD_DEF.FIELD_NAME, ARG_FIELD_DEF.DATA_SIZE
FROM dbo.ARG_FIELD_DEF
WHERE ARG_FIELD_DEF.DATA_TYPE NOT IN ( 9, 10 ) AND ARG_FIELD_DEF.DATA_SIZE <> 0
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 300
SET @var_err_message = 'table_name does not exist in arg_table_def'
SET @var_err_resolution = 'correct field value or add table record'
SET @var_err_table_name = 'arg_index_def'
SET @var_err_field_name = 'table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT id.INDEX_NAME, id.TABLE_NAME
FROM
dbo.ARG_INDEX_DEF AS id
FULL OUTER JOIN dbo.ARG_TABLE_DEF AS td
ON td.TABLE_NAME = id.TABLE_NAME
WHERE id.TABLE_NAME IS NOT NULL AND td.TABLE_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 301
SET @var_err_message = 'table_name does not exist in arg_table_def'
SET @var_err_resolution = 'correct field value or add table record'
SET @var_err_table_name = 'arg_index_member'
SET @var_err_field_name = 'table_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT im.INDEX_NAME, im.MEMBER_INSTANCE, im.TABLE_NAME
FROM
dbo.ARG_INDEX_MEMBER AS im
FULL OUTER JOIN dbo.ARG_TABLE_DEF AS td
ON td.TABLE_NAME = im.TABLE_NAME
WHERE im.TABLE_NAME IS NOT NULL AND td.TABLE_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 302
SET @var_err_message = 'field_name does not exist in arg_field_def'
SET @var_err_resolution = 'correct field value or add field record'
SET @var_err_table_name = 'arg_index_member'
SET @var_err_field_name = 'field_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT im.INDEX_NAME, im.MEMBER_INSTANCE, im.FIELD_NAME
FROM
dbo.ARG_INDEX_MEMBER AS im
FULL OUTER JOIN dbo.ARG_FIELD_DEF AS fd
ON fd.TABLE_NAME = im.TABLE_NAME AND fd.FIELD_NAME = im.FIELD_NAME
WHERE im.FIELD_NAME IS NOT NULL AND fd.FIELD_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 303
SET @var_err_message = 'index_name does not exist in arg_index_def'
SET @var_err_resolution = 'correct field value or add index def record'
SET @var_err_table_name = 'arg_index_member'
SET @var_err_field_name = 'index_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT im.INDEX_NAME, im.MEMBER_INSTANCE
FROM
dbo.ARG_INDEX_MEMBER AS im
FULL OUTER JOIN dbo.ARG_INDEX_DEF AS id
ON id.INDEX_NAME = im.INDEX_NAME
WHERE im.INDEX_NAME IS NOT NULL AND id.INDEX_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 304
SET @var_err_message = 'index_name does not exist in arg_index_member'
SET @var_err_resolution = 'correct field value or add index member record'
SET @var_err_table_name = 'arg_index_def'
SET @var_err_field_name = 'index_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT id.INDEX_NAME
FROM
dbo.ARG_INDEX_DEF AS id
FULL OUTER JOIN dbo.ARG_INDEX_MEMBER AS im
ON im.INDEX_NAME = id.INDEX_NAME
WHERE
id.INDEX_NAME IS NOT NULL AND
im.INDEX_NAME IS NULL AND
id.INDEX_NAME NOT LIKE '_WA_Sys_%'
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 400
SET @var_err_message = 'left_side_table does not exist in arg_table_def'
SET @var_err_resolution = 'correct field value or add table record'
SET @var_err_table_name = 'arg_join_member'
SET @var_err_field_name = 'left_side_table'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT jm.JOIN_NAME, jm.MEMBER_INSTANCE, jm.LEFT_SIDE_TABLE
FROM
dbo.ARG_JOIN_MEMBER AS jm
FULL OUTER JOIN dbo.ARG_TABLE_DEF AS td
ON td.TABLE_NAME = jm.LEFT_SIDE_TABLE
WHERE jm.LEFT_SIDE_TABLE IS NOT NULL AND td.TABLE_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 401
SET @var_err_message = 'left_side_field does not exist in arg_field_def'
SET @var_err_resolution = 'correct field value or add field record'
SET @var_err_table_name = 'arg_join_member'
SET @var_err_field_name = 'left_side_field'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT jm.JOIN_NAME, jm.MEMBER_INSTANCE, jm.LEFT_SIDE_FIELD
FROM
dbo.ARG_JOIN_MEMBER AS jm
FULL OUTER JOIN dbo.ARG_FIELD_DEF AS fd
ON fd.TABLE_NAME = jm.LEFT_SIDE_TABLE AND fd.FIELD_NAME = jm.LEFT_SIDE_FIELD
WHERE jm.LEFT_SIDE_FIELD IS NOT NULL AND fd.FIELD_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 402
SET @var_err_message = 'right_side_table does not exist in arg_table_def'
SET @var_err_resolution = 'correct field value or add table record'
SET @var_err_table_name = 'arg_join_member'
SET @var_err_field_name = 'right_side_table'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT jm.JOIN_NAME, jm.MEMBER_INSTANCE, jm.RIGHT_SIDE_TABLE
FROM
dbo.ARG_JOIN_MEMBER AS jm
FULL OUTER JOIN dbo.ARG_TABLE_DEF AS td
ON td.TABLE_NAME = jm.RIGHT_SIDE_TABLE
WHERE jm.RIGHT_SIDE_TABLE IS NOT NULL AND td.TABLE_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 403
SET @var_err_message = 'right_side_field does not exist in arg_field_def'
SET @var_err_resolution = 'correct field value or add field record'
SET @var_err_table_name = 'arg_join_member'
SET @var_err_field_name = 'right_side_field'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT jm.JOIN_NAME, jm.MEMBER_INSTANCE, jm.RIGHT_SIDE_FIELD
FROM
dbo.ARG_JOIN_MEMBER AS jm
FULL OUTER JOIN dbo.ARG_FIELD_DEF AS fd
ON fd.TABLE_NAME = jm.RIGHT_SIDE_TABLE AND fd.FIELD_NAME = jm.RIGHT_SIDE_FIELD
WHERE jm.RIGHT_SIDE_FIELD IS NOT NULL AND fd.FIELD_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value, @var_err_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 404
SET @var_err_message = 'join_name does not exist in arg_join_def'
SET @var_err_resolution = 'correct field value or add join def record'
SET @var_err_table_name = 'arg_join_member'
SET @var_err_field_name = 'join_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT jm.JOIN_NAME, jm.MEMBER_INSTANCE
FROM
dbo.ARG_JOIN_MEMBER AS jm
FULL OUTER JOIN dbo.ARG_JOIN_DEF AS jd
ON jd.JOIN_NAME = jm.JOIN_NAME
WHERE jm.JOIN_NAME IS NOT NULL AND jd.JOIN_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value, @var_pk2_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
SET @var_err_code = 405
SET @var_err_message = 'join_name does not exist in arg_join_member'
SET @var_err_resolution = 'correct field value or add join member record'
SET @var_err_table_name = 'arg_join_def'
SET @var_err_field_name = 'join_name'
SET @var_pk1_field_value = NULL
SET @var_pk2_field_value = NULL
SET @var_err_field_value = NULL
BEGIN
DECLARE
err_records CURSOR LOCAL FOR
SELECT jd.JOIN_NAME
FROM
dbo.ARG_JOIN_DEF AS jd
FULL OUTER JOIN dbo.ARG_JOIN_MEMBER AS jm
ON jm.JOIN_NAME = jd.JOIN_NAME
WHERE jd.JOIN_NAME IS NOT NULL AND jm.JOIN_NAME IS NULL
OPEN err_records
WHILE 1 = 1
BEGIN
FETCH err_records
INTO @var_pk1_field_value
IF @@FETCH_STATUS <> 0
BREAK
INSERT dbo.ARG_METADATA_ERRORS(
ERR_CODE,
ERR_TABLE_NAME,
PK1_FIELD_VALUE,
PK2_FIELD_VALUE,
ERR_FIELD_NAME,
ERR_FIELD_VALUE,
ERR_MESSAGE,
ERR_RESOLUTION)
VALUES (
@var_err_code,
@var_err_table_name,
@var_pk1_field_value,
@var_pk2_field_value,
@var_err_field_name,
@var_err_field_value,
@var_err_message,
@var_err_resolution)
END
CLOSE err_records
DEALLOCATE err_records
END
END
GO