Как получить название column, который обозначает Id?

Нашел такой вариант:

var dtCols = con.GetSchema("IndexColumns", new[] { con.Database, null, table });

Нужно найти, название колонки который обозначает Идентификатор (Id) код выше помогает это сделать, но не всегда. А именно index_name - указывает название в виде "PK_{название таблицы}". Но вот у некоторых таблиц имя другое например: PK_HangFire_CounterAggregated. Где идет совсем другой порядок, где HangFire - это схема, а таблица -AggregatedCounter . Вопрос в том, всегда ли добавляется PK к идентификатору (PRIMARY KEY) или есть ли другой способ найти идентификатор таблицы?


Ответы (1 шт):

Автор решения: Aziz Umarov

Если посмотреть на такой пример отсюда

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
);

Как видно данный пример нарушает ваши представления о первичном ключе. Имя в принципе можно выбрать самому и колонка вовсе не обязательно быть одной в ключе.

→ Ссылка