CREATE PROCEDURE [dbo].[VFOREIGNKEY]
@input_foreignkey_name nvarchar(max),
@input_foreignkey_table_name nvarchar(max),
@input_foreignkey_field_name nvarchar(max),
@input_referenced_table_name nvarchar(max),
@input_referenced_field_name nvarchar(max),
@input_full_report float(53) = 0
AS
BEGIN
DECLARE
@foreignkey_fields_count float(53)
SELECT @foreignkey_fields_count=count(0)
FROM sys.foreign_keys AS fk
INNER JOIN sys.foreign_key_columns AS fkc
ON fk.OBJECT_ID = fkc.constraint_object_id
WHERE OBJECT_NAME(fk.parent_object_id) = @input_foreignkey_table_name AND
COL_NAME(fkc.parent_object_id, fkc.parent_column_id) = @input_foreignkey_field_name AND
OBJECT_NAME (fk.referenced_object_id) = @input_referenced_table_name AND
COL_NAME(fkc.referenced_object_id, fkc.referenced_column_id) = @input_referenced_field_name
IF @foreignkey_fields_count = 1 AND @input_full_report = 1
PRINT 'Verify foreignkey ' + ISNULL(@input_foreignkey_name, '') + ' for field '+ ISNULL(@input_foreignkey_field_name, '') + ' on table ' + ISNULL(@input_foreignkey_table_name, '') + ' succeeded.'
IF @foreignkey_fields_count = 0
PRINT 'ERROR: Verify foreignkey ' + ISNULL(@input_foreignkey_name, '') + ' for field '+ ISNULL(@input_foreignkey_field_name, '') + ' on table ' + ISNULL(@input_foreignkey_table_name, '') + ' failed. One or more of the fields input does not match foreign key.'
END
GO