Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erhalten Sie alle Tabellen mit oder ohne Primärschlüsselbeschränkung in der SQL Server-Datenbank - SQL Server / TSQL-Tutorial 59

Szenario:

Sie arbeiten als SQL Server-Entwickler / SQL Server-DBA und müssen eine Liste von Tabellen aus einer Datenbank mit Informationen abrufen, ob die Tabelle die Primärschlüsseleinschränkung hat oder nicht.

Lösung:

Wir werden Systemansichten in der SQL Server-Datenbank verwenden, um eine Liste von Tabellen mit oder ohne Primärschlüsseleinschränkungen zu erhalten.

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'
 
Ich führe den obigen Code auf einer meiner Datenbanken und einer Liste von Tabellen mit Primärschlüsseleinschränkung oder ohne Primärschlüsseleinschränkung aus.
Liste der Tabellen aus der SQL Server-Datenbank mit oder ohne Primärschlüsselbeschränkung abrufen – SQL Server / TSQL-Tutorial



Videodemo:So erhalten Sie alle Tabellen mit oder ohne Primärschlüsselbeschränkung in der SQL Server-Datenbank