Создать представление с помощью первичного ключа?

Я создаю представление со следующими кодами

SELECT
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T1' AS sno,
    YEAR(okuma_tarihi) AS Yillar,
    SUM(toplam_kullanim_T1) AS TotalUsageValue, 'T1' AS UsageType
FROM
    TblSayacOkumalari
GROUP BY
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T1', YEAR(okuma_tarihi)

UNION ALL

SELECT
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T2' AS sno,
    YEAR(okuma_tarihi) AS Yillar,
    SUM(toplam_kullanim_T2) AS TotalUsageValue, 'T2' AS UsageType
FROM
    TblSayacOkumalari
GROUP BY
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T1', YEAR(okuma_tarihi)

UNION ALL

SELECT
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T3' AS sno,
    YEAR(okuma_tarihi) AS Yillar,
    SUM(toplam_kullanim_T3) AS TotalUsageValue, 'T3' AS UsageType
FROM
    TblSayacOkumalari
GROUP BY
    CONVERT(NVARCHAR, YEAR(okuma_tarihi)) + 'T1', YEAR(okuma_tarihi)

Я хочу определить CONVERT(nvarchar, YEAR(okuma_tarihi)) + 'T1' AS sno в качестве первичного ключа, что возможно? Если это возможно, как я могу это сделать?

Ответы

Ответ 1

Вы не можете создать первичный ключ в представлении. В SQL Server вы можете создать индекс в представлении, но это отличается от создания первичного ключа.

Если вы дадите нам больше информации о том, почему вам нужен ключ на вашем представлении, возможно, мы сможем помочь с этим.

Ответ 2

Возможно, вам не удастся создать первичный ключ (для каждого), но если ваше представление основано на таблице с первичным ключом, а ключ включен в представление, тогда первичный ключ будет отображаться и в представлении, Приложения, требующие первичного ключа, могут принимать представление, как это имеет место с Lightswitch.