Cenário:
Você está trabalhando como SQL Server Developer/SQL Server DBA e precisa obter uma lista de tabelas de um banco de dados com informações se a tabela possui restrição de chave primária ou não possui restrição de chave primária.Solução:
Vamos usar as visualizações do sistema no banco de dados SQL Server para obter uma lista de tabelas com ou sem restrições de chave primária.use YourDatabaseName
go
Select
T.Table_Catalog as DatabaseName,
T.Table_Schema AS TableSchema,
T.Table_Name AS TableName,
CCU.Column_Name AS ColumnName,
TC.Constraint_Name AS ConstraintName,
Case When TC.Constraint_Name is not Null Then 'Yes'
Else 'No' End as HasPrimaryKeyConstraint
From
information_schema.tables T
left join
information_Schema.Table_Constraints TC
on T.Table_Catalog=TC.Table_Catalog
and T.Table_Schema=TC.Table_Schema
and T.Table_Name=TC.Table_Name
and TC.Constraint_Type='PRIMARY KEY'
left JOIN
Information_Schema.constraint_column_usage CCU
on TC.Constraint_Name=CCU.Constraint_Name
and TC.Table_Name=CCU.Table_Name
and T.Table_Type='BASE TABLE' Eu executo o código acima em um dos meus bancos de dados e lista de tabelas com restrição de chave primária ou sem restrição de chave primária.
Obter lista de tabelas do Banco de Dados SQL Server com ou sem restrição de chave primária - SQL Server / Tutorial TSQLDemonstração de vídeo:como obter todas as tabelas com ou sem restrição de chave primária no banco de dados Sql Server