According to Sql Server 2008:
SELECT Object_name(f.parent_object_id) AS TableName, Col_name(fc.parent_object_id, fc.parent_column_id) AS ColumnName, Object_name (f.referenced_object_id) AS ReferenceTableName, Col_name(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName, f.name AS ForeignKey, Quotename(Schema_name(f.schema_id)) + '.' + Quotename( Object_name(f.parent_object_id)) AS schemaname, Quotename(Schema_name(o.schema_id)) + '.' + Quotename( Object_name(f.referenced_object_id)) AS ReferenceSchemaName FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id INNER JOIN sys.objects AS o ON o.OBJECT_ID = fc.referenced_object_id
If you need to know a schema name based on object_id , then use OBJECT_SCHEMA_NAME() , if you want to get a schema name based on schema_id , then use SCHEMA_NAME() .
Romil Kumar Jain May 22 '12 at 6:40 a.m. 2012-05-22 06:40
source share