The INFORMATION_SCHEMA.COLUMN_DOMAIN_USAGE view allows you to get information about alias data types that are used for columns By default it will show you this information for every single table and view that is in the database that uses an alias data type.
This view can be called from any of the databases in an instance of SQL Server and will return the results for the data within that particular database.
The columns that this view returns are as follows:
|Column name||Data type||Description|
|DOMAIN_CATALOG||nvarchar(128)||Database in which the alias data type exists.|
|DOMAIN_SCHEMA||nvarchar(128)||Name of schema that contains the alias data type.|
|DOMAIN_NAME||sysname||Alias data type.|
|TABLE_NAME||sysname||Table in which the alias data type is used.|
|COLUMN_NAME||sysname||Column using the alias data type.|
(Source: SQL Server 2005 Books Online)
Here is an example of data that was pulled from the AdventureWorks database. This data was pulled using this query:
|SELECT * FROM INFORMATION_SCHEMA.COLUMN_DOMAIN_USAGE|
In the results below we can see that the data type "Name" in the DOMAIN_NAME column is used in several tables for columns ReviewerName (ProductReview) and Name (AddressType, ProductSubcategory, UnitMeasure).
To see the underlying data types for these aliased data types you can use this query.
|SELECT DISTINCT DOMAIN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH|
WHERE DOMAIN_NAME IS NOT NULL