CONSTRAINT_TABLE_USAGE (Transact-SQL)

Returns one row for each table in the current database that has a constraint defined on the table. This information schema view returns information about the objects to which the current user has permissions.

To retrieve information from these views, specify the fully qualified name of INFORMATION_SCHEMA.view_name.

Column name

Data type

Description

TABLE_CATALOG

nvarchar(128)

Table qualifier.

TABLE_SCHEMA

nvarchar(128)

Name of schema that contains the table.

Important noteImportant
Do not use INFORMATION_SCHEMA views to determine the schema of an object. The only reliable way to find the schema of an object is to query the sys.objects catalog view or the OBJECT_SCHEMA_NAME function.

TABLE_NAME

sysname

Table name.

CONSTRAINT_CATALOG

nvarchar(128)

Constraint qualifier.

CONSTRAINT_SCHEMA

nvarchar(128)

Name of schema that contains the constraint.

Important noteImportant
Do not use INFORMATION_SCHEMA views to determine the schema of an object. The only reliable way to find the schema of an object is to query the sys.objects catalog view or the OBJECT_SCHEMA_NAME function.

CONSTRAINT_NAME

sysname

Constraint name.

Examples

The following example returns constraint information for each table or view in the Production schema.

USE AdventureWorks;
GO

SELECT *
FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE AS ctu
INNER JOIN sys.objects AS o ON ctu.TABLE_NAME = o.name 
    AND OBJECT_SCHEMA_NAME(o.object_id) = N'Production';

The following example returns each table or view in the database that has a CHECK constraint defined on it. The query contains a join to the CHECK_CONSTRAINT view to return the definition of the CHECK constraint.

USE AdventureWorks;
GO

SELECT ctu.TABLE_SCHEMA, ctu.TABLE_NAME, cc.CONSTRAINT_SCHEMA, cc.CONSTRAINT_NAME, cc.CHECK_CLAUSE
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS AS cc
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE AS ctu
    ON cc.CONSTRAINT_NAME = ctu.CONSTRAINT_NAME;