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 TSQL
Demonstração de vídeo:como obter todas as tabelas com ou sem restrição de chave primária no banco de dados Sql Server