Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como obter todas as tabelas com ou sem restrição de chave primária no banco de dados Sql Server - Tutorial SQL Server / TSQL 59

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