Hi goodk,
под новый вопрос.
выберите object_name (col.object_id) как [таблица],
col_name (col.object_id, col.column_id) как [колонка],
typ.name как [column_type],
случай когда ind.is_primary_key = 1 и ind_col.index_id не нулево после этого «да»
еще «не»
конец как [is_primary_key],
isnull (object_name (fk.referenced_object_id), '') как [снабженная ссылками таблица],
isnull (col_name (fk.referenced_object_id, fk.referenced_column_id), '') как [чужой ключ]
от col sys.columns соедините obj sys.objects на obj.object_id = col.object_id
соедините typ sys.types на col.user_type_id = typ.user_type_id
левая сторона соединяет sys.indexes ind на obj.object_id = ind.object_id
и col.object_id = ind.object_id
левая сторона соединяет ind_col sys.index_columns на obj.object_id = ind_col.object_id
и ind.object_id = ind_col.object_id
и col.column_id = ind_col.column_id
и ind.index_id = ind_col.index_id
левая сторона соединяет sys.foreign_key_columns fk на col.object_id = fk.parent_object_id
и col.column_id = fk.parent_column_id
где obj.type = «u» -- перечислять только таблицы потребителя