sql >> データベース >  >> RDS >> Sqlserver

SQLServerデータベースで主キー制約の有無にかかわらずすべてのテーブルを取得する方法-SQLServer/TSQLチュートリアル59

    シナリオ:

    SQLServer開発者/SQLServer DBAとして作業しており、テーブルに主キー制約がある場合、または主キー制約がない場合の情報を含むテーブルのリストをデータベースから取得する必要があります。

    解決策:

    SQLサーバーデータベースのシステムビューを使用して、主キー制約の有無にかかわらずテーブルのリストを取得します。

    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'
     
    データベースとテーブルのリストの1つで、主キー制約ありまたは主キー制約なしで上記のコードを実行します。
    主キー制約の有無にかかわらずSQLServerデータベースからテーブルのリストを取得する-SQLServer/TSQLチュートリアル



    ビデオデモ:SQLServerデータベースで主キー制約がある場合とない場合のすべてのテーブルを取得する方法

    1. UTF8テーブルのlatin1文字をUTF8に変換します

    2. PostgreSQLのSTRING_AGG()関数

    3. LOAD DATA INFILEエラーコード:13

    4. SQL Server(T-SQL)でデータベースの照合を設定する方法