web-dev-qa-db-ja.com

主キーでビューを作成しますか?

次のコードでビューを作成します

_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を主キーとして定義したいのですが、可能ですか?これが可能な場合、どうすればよいですか?

22

ビューに主キーを作成することはできません。 SQL Serverでは、 ビューでindexを作成 できますが、これは主キーの作成とは異なります。

ビューにキーが必要な理由に関する詳細情報を提供していただければ、おそらく私たちがそれを支援することができます。

37
Kevin Aenmey

(たとえば)プライマリキーを作成できない場合がありますが、ビューがプライマリキーを持つテーブルに基づいており、そのキーがビューに含まれている場合、プライマリキーもビューに反映されます。主キーを必要とするアプリケーションは、Lightswitchの場合のようにビューを受け入れる場合があります。

3
DLallemant