answer to your first questionSELECT FK.NAME AS CONSTRAINT_NAME , PT.NAME AS PARENT_TABLE , PC.COLUMN_ID AS PARENT_COLUMN_ID , PC.NAME AS PARENT_COLUMN_NAME , RT.NAME AS REFERENCED_TABLE , RC.COLUMN_ID AS REFERENCED_COLUMN_ID , RC.NAME AS REFERENCED_COLUMN_NAME FROM sys.foreign_keys FK JOIN sys.foreign_key_columns FKC ON FKC.CONSTRAINT_OBJECT_ID = FK.OBJECT_ID JOIN SYS.TABLES PT ON PT.OBJECT_ID = FK.PARENT_OBJECT_ID -- AND PT.OBJECT_ID = FKC.PARENT_OBJECT_ID JOIN SYS.TABLES RT ON RT.OBJECT_ID = FK.referenced_object_id -- REFERENCE TABLE -- AND RT.OBJECT_ID = FKC.parent_column_id JOIN SYS.COLUMNS PC ON PC.OBJECT_ID = PT.OBJECT_ID AND PC.COLUMN_ID = FKC.PARENT_COLUMN_ID JOIN SYS.COLUMNS RC ON RC.OBJECT_ID = RT.OBJECT_ID AND RC.COLUMN_ID = FKC.referenced_column_id