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

SQL Serverで主キーを取得する11の方法(T-SQLの例)

    多くの場合、SQL Serverで同じ(または同様の)ことを行う方法はたくさんあります。データベースからすべての主キー(または特定のテーブルの主キーだけ)を取得するのが適切な例です。

    この記事では、SQLServerで主キー情報を取得するための11の異なるアプローチを紹介します。

    正確な状況によっては、これらのいくつかは他のものよりも便利です。

    例1-sp_pkeysシステムストアドプロシージャ

    特定のテーブルの主キーが必要な場合は、sp_pkeys システムストアドプロシージャは、おそらくそれを行うための最も速くて簡単な方法です。これを行うには、テーブル名をプロシージャに渡すだけです。

    このように:

    EXEC sp_pkeys Artists;
    

    結果(垂直出力を使用):

    TABLE_QUALIFIER | Music
    TABLE_OWNER     | dbo
    TABLE_NAME      | Artists
    COLUMN_NAME     | ArtistId
    KEY_SEQ         | 1
    PK_NAME         | PK__Artists__25706B50FCD918B1
    

    この場合、 Artists に主キーをリクエストしました テーブル。主キー名( PK__Artists__25706B50FCD918B1 )を返します。 )、データベース名( Music )、テーブル名、列名( ArtistId )、およびその他の情報。

    または、すべての引数を明示的に指定して同じ結果を得ることができます。

    EXEC sp_pkeys 
      @table_name = Artists,
      @table_owner = dbo,
      @table_qualifier = Music;
    

    例2–KEY_COLUMN_USAGEシステムビュー

    INFORMATION_SCHEMA.KEY_COLUMN_USAGE システムビューは、現在のデータベースでキーとして制約されている列ごとに1行を返します。したがって、このビューで外部キーも返されます。

    SELECT 
      TABLE_NAME, 
      COLUMN_NAME,
      CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE;
    

    結果:

    +--------------+---------------+-------------------------------+
    | TABLE_NAME   | COLUMN_NAME   | CONSTRAINT_NAME               |
    |--------------+---------------+-------------------------------|
    | Albums       | ArtistId      | FK_Albums_Artists             |
    | Albums       | GenreId       | FK_Albums_Genres              |
    | Albums       | AlbumId       | PK__Albums__97B4BE379FC780BD  |
    | Artists      | ArtistId      | PK__Artists__25706B50FCD918B1 |
    | Genres       | GenreId       | PK__Genres__0385057E88BB96F8  |
    +--------------+---------------+-------------------------------+
    

    これにより、すべてのテーブルから制約が返されることがわかります。 WHEREを追加することもできます 結果を特定のテーブルに絞り込む句。

    SELECT 
      TABLE_NAME,
      COLUMN_NAME,
      CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
    WHERE TABLE_NAME = 'Artists';
    

    結果:

    +--------------+---------------+-------------------------------+
    | TABLE_NAME   | COLUMN_NAME   | CONSTRAINT_NAME               |
    |--------------+---------------+-------------------------------|
    | Artists      | ArtistId      | PK__Artists__25706B50FCD918B1 |
    +--------------+---------------+-------------------------------+
    

    これらの例では、関心のあるビューの列だけに結果を絞り込みましたが、アスタリスク(*)を使用することもできます。 )すべての列を返すワイルドカード。

    SELECT *
    FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
    WHERE TABLE_NAME = 'Artists';
    

    結果(垂直出力を使用):

    CONSTRAINT_CATALOG | Music
    CONSTRAINT_SCHEMA  | dbo
    CONSTRAINT_NAME    | PK__Artists__25706B50FCD918B1
    TABLE_CATALOG      | Music
    TABLE_SCHEMA       | dbo
    TABLE_NAME         | Artists
    COLUMN_NAME        | ArtistId
    ORDINAL_POSITION   | 1
    

    例3–CONSTRAINT_COLUMN_USAGEシステムビュー

    これは前の例と似ています。 INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE システムビューは、列に制約が定義されている現在のデータベースの列ごとに1行を返します。 INFORMATION_SCHEMA.KEY_COLUMN_USAGEと同様 このビューで外部キーも返されます。ただし、INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE キーの制約だけに限定されません。

    SELECT 
      TABLE_NAME, 
      COLUMN_NAME,
      CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;
    

    結果:

    +--------------+---------------+-------------------------------+
    | TABLE_NAME   | COLUMN_NAME   | CONSTRAINT_NAME               |
    |--------------+---------------+-------------------------------|
    | Albums       | ArtistId      | FK_Albums_Artists             |
    | Albums       | GenreId       | FK_Albums_Genres              |
    | Albums       | AlbumId       | PK__Albums__97B4BE379FC780BD  |
    | Artists      | ArtistId      | PK__Artists__25706B50FCD918B1 |
    | Genres       | GenreId       | PK__Genres__0385057E88BB96F8  |
    +--------------+---------------+-------------------------------+
    

    WHEREを使用できます 特定のテーブルまたは列のみを返す句:

    SELECT 
      TABLE_NAME, 
      COLUMN_NAME,
      CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
    WHERE COLUMN_NAME = 'ArtistId';
    

    結果:

    +--------------+---------------+-------------------------------+
    | TABLE_NAME   | COLUMN_NAME   | CONSTRAINT_NAME               |
    |--------------+---------------+-------------------------------|
    | Albums       | ArtistId      | FK_Albums_Artists             |
    | Artists      | ArtistId      | PK__Artists__25706B50FCD918B1 |
    +--------------+---------------+-------------------------------+
    

    この場合、列名を指定したので、その名前の列に対するすべての制約が返されました。実は、データベースは2つの異なるテーブルで同じ列名を使用しています。 1つには外部キー制約があり、もう1つには主キーがあります。したがって、両方の行が返されます。

    ここでも、アスタリスク(*)を使用できます )すべての列を返すワイルドカード。

    SELECT *
    FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
    WHERE TABLE_NAME = 'Artists';
    

    結果(垂直出力を使用):

    TABLE_CATALOG      | Music
    TABLE_SCHEMA       | dbo
    TABLE_NAME         | Artists
    COLUMN_NAME        | ArtistId
    CONSTRAINT_CATALOG | Music
    CONSTRAINT_SCHEMA  | dbo
    CONSTRAINT_NAME    | PK__Artists__25706B50FCD918B1
    

    この例では、出力を特定のテーブルの制約のみに制限しました。

    例4–CONSTRAINT_TABLE_USAGEシステムビュー

    INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE システムビューは、テーブルに制約が定義されている現在のデータベースのテーブルごとに1行を返します。

    SELECT 
      TABLE_NAME,
      CONSTRAINT_NAME 
    FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE;
    

    結果:

    +--------------+-------------------------------+
    | TABLE_NAME   | CONSTRAINT_NAME               |
    |--------------+-------------------------------|
    | Artists      | PK__Artists__25706B50FCD918B1 |
    | Genres       | PK__Genres__0385057E88BB96F8  |
    | Albums       | PK__Albums__97B4BE379FC780BD  |
    | Albums       | FK_Albums_Artists             |
    | Albums       | FK_Albums_Genres              |
    +--------------+-------------------------------+
    

    このビューは、制約が使用されている列名を返さないため、要件によってはあまり役に立たない場合があります。

    これは、 ジャンル のこのビューによって返されるすべてのデータを示す例です。 テーブル:

    SELECT * 
    FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
    WHERE TABLE_NAME = 'Genres';
    

    結果:

    TABLE_CATALOG      | Music
    TABLE_SCHEMA       | dbo
    TABLE_NAME         | Genres
    CONSTRAINT_CATALOG | Music
    CONSTRAINT_SCHEMA  | dbo
    CONSTRAINT_NAME    | PK__Genres__0385057E88BB96F8
    

    例5–TABLE_CONSTRAINTSシステムビュー

    INFORMATION_SCHEMA.TABLE_CONSTRAINTS システムビューは、現在のデータベースのテーブル制約ごとに1行を返します。

    SELECT 
      TABLE_NAME,
      CONSTRAINT_NAME,
      CONSTRAINT_TYPE
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS;
    

    結果:

    +--------------+-------------------------------+-------------------+
    | TABLE_NAME   | CONSTRAINT_NAME               | CONSTRAINT_TYPE   |
    |--------------+-------------------------------+-------------------|
    | Artists      | PK__Artists__25706B50FCD918B1 | PRIMARY KEY       |
    | Genres       | PK__Genres__0385057E88BB96F8  | PRIMARY KEY       |
    | Albums       | PK__Albums__97B4BE379FC780BD  | PRIMARY KEY       |
    | Albums       | FK_Albums_Artists             | FOREIGN KEY       |
    | Albums       | FK_Albums_Genres              | FOREIGN KEY       |
    +--------------+-------------------------------+-------------------+
    

    このビューは列名を提供しませんが、制約タイプを提供します。したがって、結果を主キーのみに絞り込むことができます。

    SELECT 
      TABLE_NAME,
      CONSTRAINT_NAME,
      CONSTRAINT_TYPE
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE CONSTRAINT_TYPE = 'PRIMARY KEY';
    

    結果:

    +--------------+-------------------------------+-------------------+
    | TABLE_NAME   | CONSTRAINT_NAME               | CONSTRAINT_TYPE   |
    |--------------+-------------------------------+-------------------|
    | Artists      | PK__Artists__25706B50FCD918B1 | PRIMARY KEY       |
    | Genres       | PK__Genres__0385057E88BB96F8  | PRIMARY KEY       |
    | Albums       | PK__Albums__97B4BE379FC780BD  | PRIMARY KEY       |
    +--------------+-------------------------------+-------------------+
    

    ワイルドカード(*)を使用する例を次に示します。 ) Artists の制約のすべてのデータを返す文字 テーブル:

    SELECT *
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE TABLE_NAME = 'Artists';
    

    結果:

    CONSTRAINT_CATALOG | Music
    CONSTRAINT_SCHEMA  | dbo
    CONSTRAINT_NAME    | PK__Artists__25706B50FCD918B1
    TABLE_CATALOG      | Music
    TABLE_SCHEMA       | dbo
    TABLE_NAME         | Artists
    CONSTRAINT_TYPE    | PRIMARY KEY
    IS_DEFERRABLE      | NO
    INITIALLY_DEFERRED | NO
    

    例6–key_constraintsシステムビュー

    sys.key_constraints システムビューには、主キーまたは一意性制約である各オブジェクトの行が含まれています。したがって、次のコードを使用して、データベース内のすべての主キー制約と、各主キーに関連するテーブルを返すことができます。

    SELECT 
      OBJECT_NAME(parent_object_id) AS 'Table',
      name
    FROM sys.key_constraints 
    WHERE type = 'PK';
    

    結果:

    +---------+-------------------------------+
    | Table   | name                          |
    |---------+-------------------------------|
    | Artists | PK__Artists__25706B50FCD918B1 |
    | Genres  | PK__Genres__0385057E88BB96F8  |
    | Albums  | PK__Albums__97B4BE379FC780BD  |
    +---------+-------------------------------+
    

    もちろん、WHEREを削除することもできます 主キーの両方を返す句 一意のキー。

    前の例では、OBJECT_NAME()を使用しています object_idではなく、親テーブル名を返す関数。 OBJECT_NAME()を使用しなかった場合 関数の場合、結果は次のようになります。

    SELECT 
      parent_object_id,
      name
    FROM sys.key_constraints
    WHERE type = 'PK';
    

    結果:

    +--------------------+-------------------------------+
    | parent_object_id   | name                          |
    |--------------------+-------------------------------|
    | 885578193          | PK__Artists__25706B50FCD918B1 |
    | 917578307          | PK__Genres__0385057E88BB96F8  |
    | 949578421          | PK__Albums__97B4BE379FC780BD  |
    +--------------------+-------------------------------+
    

    parent_object_id 親オブジェクトの名前の代わりにが返されます。 OBJECT_NAME() 関数を使用すると、各キーがどのテーブルに適用されているかを簡単に理解できます。

    ワイルドカード(*)を使用する例を次に示します。 ) Albums の主キーのすべての列を返す文字 テーブル:

    SELECT *
    FROM sys.key_constraints
    WHERE type = 'PK'
    AND OBJECT_NAME(parent_object_id) = 'Albums';
    

    結果:

    name                | PK__Albums__97B4BE379FC780BD
    object_id           | 965578478
    principal_id        | NULL
    schema_id           | 1
    parent_object_id    | 949578421
    type                | PK
    type_desc           | PRIMARY_KEY_CONSTRAINT
    create_date         | 2019-05-02 12:56:06.377
    modify_date         | 2019-05-02 12:56:06.377
    is_ms_shipped       | 0
    is_published        | 0
    is_schema_published | 0
    unique_index_id     | 1
    is_system_named     | 1
    is_enforced         | 1
    

    例7–sys.objectsシステムビュー

    sys.objects システムビューには、データベース内に作成されたユーザー定義のスキーマスコープオブジェクトごとの行が含まれます。したがって、テーブルと主キーが含まれています。

    前のクエリを取得して、key_constraintsを置き換えることができます objectsを使用 同じ結果が得られます:

    SELECT 
      OBJECT_NAME(parent_object_id) AS 'Table',
      name
    FROM sys.objects 
    WHERE type = 'PK';
    

    結果:

    +---------+-------------------------------+
    | Table   | name                          |
    |---------+-------------------------------|
    | Artists | PK__Artists__25706B50FCD918B1 |
    | Genres  | PK__Genres__0385057E88BB96F8  |
    | Albums  | PK__Albums__97B4BE379FC780BD  |
    +---------+-------------------------------+
    

    PK__Genres__0385057E88BB96F8 のすべてのデータを返す例を次に示します。 主キー:

    SELECT *
    FROM sys.objects
    WHERE name = 'PK__Genres__0385057E88BB96F8';
    

    結果(垂直出力を使用):

    name                | PK__Genres__0385057E88BB96F8
    object_id           | 933578364
    principal_id        | NULL
    schema_id           | 1
    parent_object_id    | 917578307
    type                | PK
    type_desc           | PRIMARY_KEY_CONSTRAINT
    create_date         | 2019-05-02 12:56:06.110
    modify_date         | 2019-05-02 12:56:06.110
    is_ms_shipped       | 0
    is_published        | 0
    is_schema_published | 0
    

    例8–REFERENTIAL_CONSTRAINTSシステムビュー

    これは少し難しいですが、状況によっては役立つ場合があります。そして技術的には、(いくつかの)主キーを返します。

    INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS システムビューは、FOREIGN KEYごとに1行を返します 現在のデータベースの制約。したがって、その目的は実際には主キーではなく外部キーを返すことです。ただし、このビューは、外部キーが関連付けられているすべての主キーのみを表示する場合に便利です。関連する外部キーがあるかどうかに関係なく、すべての主キーを表示する場合は、信頼できる方法ではありません。

    次に例を示します:

    SELECT 
        CONSTRAINT_NAME,
        UNIQUE_CONSTRAINT_NAME
    FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
    

    結果:

    +-------------------+-------------------------------+
    | CONSTRAINT_NAME   | UNIQUE_CONSTRAINT_NAME        |
    |-------------------+-------------------------------|
    | FK_Albums_Artists | PK__Artists__25706B50FCD918B1 |
    | FK_Albums_Genres  | PK__Genres__0385057E88BB96F8  |
    +-------------------+-------------------------------+
    

    ご覧のとおり、これは外部キーが関連付けられている主キーのみを返します。より正確には、実際にはその逆です。すべての外部キーと、それに関連付けられたUNIQUEを返します。 制約。

    したがって、これらの結果を前の例の結果と比較すると、2つの主キーのみが返されることがわかります(前の例の3つと比較して)。これは、このデータベースの主キーの1つ( PK__Albums__97B4BE379FC780BD )関連する外部キーがありません。

    これは、 PK__Artists__25706B50FCD918B1 の外部キーのすべてのデータを返す例です。 UNIQUEです 制約:

    SELECT *
    FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
    WHERE UNIQUE_CONSTRAINT_NAME = 'PK__Artists__25706B50FCD918B1';
    

    結果:

    CONSTRAINT_CATALOG        | Music
    CONSTRAINT_SCHEMA         | dbo
    CONSTRAINT_NAME           | FK_Albums_Artists
    UNIQUE_CONSTRAINT_CATALOG | Music
    UNIQUE_CONSTRAINT_SCHEMA  | dbo
    UNIQUE_CONSTRAINT_NAME    | PK__Artists__25706B50FCD918B1
    MATCH_OPTION              | SIMPLE
    UPDATE_RULE               | NO ACTION
    DELETE_RULE               | NO ACTION
    

    この場合、1つの外部キーのみが返されます。

    前述のように、このビューは主に外部キー情報を返すためのものであるため、関連する主キーとともに外部キー情報を表示する場合にのみ、このメソッドを使用してください。外部キーが関連付けられているかどうかに関係なく、すべての主キーを表示する場合は、この方法を使用しないでください。

    例9–sp_fkeysシステムストアドプロシージャ

    このメソッドは、外部キー情報を返すという意味で、前のメソッドと似ています。また、各外部キーに関連付けられた主キーを返します。

    例:

    EXEC sp_fkeys Artists;
    

    結果(垂直出力を使用):

    PKTABLE_QUALIFIER | Music
    PKTABLE_OWNER     | dbo
    PKTABLE_NAME      | Artists
    PKCOLUMN_NAME     | ArtistId
    FKTABLE_QUALIFIER | Music
    FKTABLE_OWNER     | dbo
    FKTABLE_NAME      | Albums
    FKCOLUMN_NAME     | ArtistId
    KEY_SEQ           | 1
    UPDATE_RULE       | 1
    DELETE_RULE       | 1
    FK_NAME           | FK_Albums_Artists
    PK_NAME           | PK__Artists__25706B50FCD918B1
    DEFERRABILITY     | 7
    

    代わりに次の構文(またはこれらの引数の組み合わせ)を使用することもできます:

    EXEC sp_fkeys 
      @pktable_name = Artists,
      @pktable_owner = dbo,
      @pktable_qualifier = Music,
      @fktable_name = Albums,
      @fktable_owner = dbo,
      @fktable_qualifier = Music;
    

    前の例と同様に、このメソッドはすべての主キーを返すために信頼されるべきではありません。主キーに外部キーが関連付けられていない場合、そのキーは返されません。

    例10–sp_helpconstraintシステムストアドプロシージャ

    sp_helpconstraint システムストアドプロシージャは、すべての制約タイプ、それらのユーザー定義またはシステム提供の名前、それらが定義されている列、および制約を定義する式(DEFAULTの場合)のリストを返します。 およびCHECK 制約のみ)。

    したがって、これを使用して、データベース内の主キーに関する情報を返すことができます。

    例:

    EXEC sp_helpconstraint Albums;
    

    結果:

    +---------------+
    | Object Name   |
    |---------------|
    | Albums        |
    +---------------+
     
    -[ RECORD 1 ]-------------------------
    constraint_type        | FOREIGN KEY
    constraint_name        | FK_Albums_Artists
    delete_action          | No Action
    update_action          | No Action
    status_enabled         | Enabled
    status_for_replication | Is_For_Replication
    constraint_keys        | ArtistId
    -[ RECORD 2 ]-------------------------
    constraint_type        |  
    constraint_name        |  
    delete_action          |  
    update_action          |  
    status_enabled         |  
    status_for_replication |  
    constraint_keys        | REFERENCES Music.dbo.Artists (ArtistId)
    -[ RECORD 3 ]-------------------------
    constraint_type        | FOREIGN KEY
    constraint_name        | FK_Albums_Genres
    delete_action          | No Action
    update_action          | No Action
    status_enabled         | Enabled
    status_for_replication | Is_For_Replication
    constraint_keys        | GenreId
    -[ RECORD 4 ]-------------------------
    constraint_type        |  
    constraint_name        |  
    delete_action          |  
    update_action          |  
    status_enabled         |  
    status_for_replication |  
    constraint_keys        | REFERENCES Music.dbo.Genres (GenreId)
    -[ RECORD 5 ]-------------------------
    constraint_type        | PRIMARY KEY (clustered)
    constraint_name        | PK__Albums__97B4BE379FC780BD
    delete_action          | (n/a)
    update_action          | (n/a)
    status_enabled         | (n/a)
    status_for_replication | (n/a)
    constraint_keys        | AlbumId
    

    例11–sp_helpシステムストアドプロシージャ

    sp_help システムストアドプロシージャは、データベースオブジェクト(sys.sysobjectsにリストされているオブジェクト)に関する情報を報告します 互換表示)、ユーザー定義のデータ型、またはデータ型。これには、主キーに関する情報が含まれます。

    引数なしでこれを実行すると、現在のデータベースに存在するすべてのタイプのオブジェクトの要約情報に関する情報が返されます(つまり、ロット 情報の)。

    ただし、テーブルの名前を指定すると、そのテーブルに関する情報が返されます。繰り返しになりますが、多くの情報が返されますが、その中には主キー情報が含まれます。

    例:

    EXEC sp_help Artists;
    

    結果:

    +---------+---------+------------+-------------------------+
    | Name    | Owner   | Type       | Created_datetime        |
    |---------+---------+------------+-------------------------|
    | Artists | dbo     | user table | 2019-05-02 12:56:05.840 |
    +---------+---------+------------+-------------------------+
     
    -[ RECORD 1 ]-------------------------
    Column_name          | ArtistId
    Type                 | int
    Computed             | no
    Length               | 4
    Prec                 | 10   
    Scale                | 0    
    Nullable             | no
    TrimTrailingBlanks   | (n/a)
    FixedLenNullInSource | (n/a)
    Collation            | NULL
    -[ RECORD 2 ]-------------------------
    Column_name          | ArtistName
    Type                 | nvarchar
    Computed             | no
    Length               | 510
    Prec                 |      
    Scale                |      
    Nullable             | no
    TrimTrailingBlanks   | (n/a)
    FixedLenNullInSource | (n/a)
    Collation            | SQL_Latin1_General_CP1_CI_AS
    -[ RECORD 3 ]-------------------------
    Column_name          | ActiveFrom
    Type                 | date
    Computed             | no
    Length               | 3
    Prec                 | 10   
    Scale                | 0    
    Nullable             | yes
    TrimTrailingBlanks   | (n/a)
    FixedLenNullInSource | (n/a)
    Collation            | NULL
     
    +------------+--------+-------------+-----------------------+
    | Identity   | Seed   | Increment   | Not For Replication   |
    |------------+--------+-------------+-----------------------|
    | ArtistId   | 1      | 1           | 0                     |
    +------------+--------+-------------+-----------------------+
     
    +-------------------------------+
    | RowGuidCol                    |
    |-------------------------------|
    | No rowguidcol column defined. |
    +-------------------------------+
     
    +-----------------------------+
    | Data_located_on_filegroup   |
    |-----------------------------|
    | PRIMARY                     |
    +-----------------------------+
     
    +-------------------------------+---------------------------------------------------+--------------+
    | index_name                    | index_description                                 | index_keys   |
    |-------------------------------+---------------------------------------------------+--------------|
    | PK__Artists__25706B50FCD918B1 | clustered, unique, primary key located on PRIMARY | ArtistId     |
    +-------------------------------+---------------------------------------------------+--------------+
     
    -[ RECORD 1 ]-------------------------
    constraint_type        | PRIMARY KEY (clustered)
    constraint_name        | PK__Artists__25706B50FCD918B1
    delete_action          | (n/a)
    update_action          | (n/a)
    status_enabled         | (n/a)
    status_for_replication | (n/a)
    constraint_keys        | ArtistId
     
    +--------------------------------------+
    | Table is referenced by foreign key   |
    |--------------------------------------|
    | Music.dbo.Albums: FK_Albums_Artists  |
    +--------------------------------------+
    

    主キーの名前を指定して、主キーに関する基本情報を取得することもできます。

    EXEC sp_help PK__Artists__25706B50FCD918B1;
    

    結果:

    +-------------------------------+---------+-----------------+-------------------------+
    | Name                          | Owner   | Type            | Created_datetime        |
    |-------------------------------+---------+-----------------+-------------------------|
    | PK__Artists__25706B50FCD918B1 | dbo     | primary key cns | 2019-05-02 12:56:05.853 |
    +-------------------------------+---------+-----------------+-------------------------+
    

    1. PDOを使用した単一行、単一列のフェッチ

    2. HibernateはMySQLのONDUPLICATEKEY UPDATE構文で動作しますか?

    3. OracleでPLSQLコードをラップする方法は?

    4. SQLServerジョブを自動的に作成する