For MSSQL:
SELECT DISTINCT C.TABLE_NAME,C.COLUMN_NAME,C.DATA_TYPE
FROM sys.indexes I
INNER JOIN sys.index_columns IC ON I.OBJECT_ID = IC.OBJECT_ID AND I.INDEX_ID = IC.INDEX_ID
INNER JOIN information_schema.columns C ON COL_NAME(IC.OBJECT_ID,IC.COLUMN_ID) = C.COLUMN_NAME
WHERE I.IS_PRIMARY_KEY = 1