どの列が主キーであるかを判断するために使用したいSQL Serverスキーマコレクションに基づいています。sqlConnection.GetSchema("IndexColumns");
いくつかの実験を行ったところ、上記のリクエストで次の情報を含むデータ テーブルが得られることがわかりました。
table_catalog table_schema table_name column_name ordinal_position KeyType index_name
---------------------------------------------------------------------------------------------------------------------------
TestDb dbo TestTableWithPrimaryKey Id 1 56 PK_TestTableWithPrimaryKey
主キーのKeyType = 56
略だと思いますが、これはこのテーブル定義からのみ推測されます:
CREATE TABLE [dbo].[TestTableWithPrimaryKey]
(
[Id] [int] IDENTITY(1,1) NOT NULL,
[Foo] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_TestTableWithPrimaryKey]
PRIMARY KEY CLUSTERED ([Id] ASC)
) ON [PRIMARY]
プロジェクトで実際に使用する前に、調査結果が正しいことを確認したいと思います。すべての種類のキーを入手できる場所はありますか?