I need a query to get pk, fk, indexes, references tables and attributes in sql and export to excel

Copper Contributor

Hi everyone! ,

I want to get with SQL all information about all the tables in my database, whit this order:
First, the Table Name, Attribute, Data Type, Lenght, Constraint(PK, FK), and ReferencesTable.
Because I'm doing a dictionary of data in excel. So I want to export the result of that query to my excel.

For example this query brings me the PK for all the tables that I have in my database:

select schema_name(tab.schema_id) as [schema_name],
tab.[name] as table_name,
pk.[name] as pk_name,
substring(column_names, 1, len(column_names)-1) as [columns]
from sys.tables tab
left outer join sys.indexes pk
on tab.object_id = pk.object_id
and pk.is_primary_key = 1
cross apply (select col.[name] + ', '
from sys.index_columns ic
inner join sys.columns col
on ic.object_id = col.object_id
and ic.column_id = col.column_id
where ic.object_id = tab.object_id
and ic.index_id = pk.index_id
order by col.column_id
for xml path ('') ) D (column_names)
order by schema_name(tab.schema_id),

I try many queries but I can't create one that brings me in ONE query all that information that I want.

It has to be IN ONE QUERY.

I put here an example for the columns that I need.

I hope you can help me! Thanks.

0 Replies