sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo obtener todas las tablas con o sin restricción de clave principal en la base de datos del servidor Sql - Tutorial de SQL Server / TSQL 59

Escenario:

Está trabajando como desarrollador de SQL Server/DBA de SQL Server y necesita obtener una lista de tablas de una base de datos con información si la tabla tiene la restricción de clave principal o no tiene restricción de clave principal.

Solución:

Vamos a utilizar las vistas del sistema en la base de datos del servidor SQL para obtener una lista de tablas con o sin restricciones de clave principal.

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'
 
Ejecuto el código anterior en una de mis bases de datos y lista de tablas con restricción de clave principal o sin restricción de clave principal.
Obtenga una lista de tablas de la base de datos de SQL Server con o sin restricción de clave principal - Tutorial de SQL Server/TSQL



Video de demostración:cómo obtener todas las tablas con o sin restricción de clave principal en la base de datos del servidor Sql