2012-07-11 36 views
16

tôi có thể tạo một cái nhìn với mã sauTạo chế độ xem bằng khóa chính?

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) 

Tôi muốn xác định CONVERT(nvarchar, YEAR(okuma_tarihi)) + 'T1' AS sno như một khóa chính là có thể? Nếu là điều này có thể làm thế nào tôi có thể làm gì?

Trả lời

26

Bạn không thể tạo khóa chính trên chế độ xem. Trong SQL Server, bạn có thể create an index on a view nhưng điều đó khác với việc tạo khóa chính.

Nếu bạn cung cấp cho chúng tôi thêm thông tin về lý do bạn muốn có chìa khóa trên quan điểm của mình, có lẽ chúng tôi có thể trợ giúp về điều đó.

+2

Tôi tạo mô hình từ chế độ xem và tôi thay đổi hướng dẫn sử dụng sno làm khóa thực thể. Khi tôi cập nhật mô hình, tôi cũng phải thay đổi nó thành một khóa thực thể. điều này không có chức năng đối với tôi. –

+10

"Nếu bạn cung cấp cho chúng tôi thêm thông tin về lý do bạn muốn một khóa trên chế độ xem của bạn" - Entity Framework đưa ra cảnh báo rằng chế độ xem không có khóa chính: 'Lỗi 6002: Bảng/view 'mydb.dbo.myview' không có một khóa chính được xác định ... ' – Ivan

+5

@Ivan Liên kết sau đây có thể giúp cho trường hợp đó: http://stackoverflow.com/a/2715299/1464699 –

1

Bạn không thể tạo khóa chính (mỗi lần nói) nhưng nếu chế độ xem của bạn dựa trên bảng có khóa chính và khóa được bao gồm trong chế độ xem thì khóa chính sẽ được phản ánh trong chế độ xem cũng thế. Các ứng dụng yêu cầu một khóa chính có thể chấp nhận khung nhìn vì nó là trường hợp với Lightswitch.

+0

Tôi cố gắng cho cùng @ DLallemant, nhưng khóa chính của bảng thực tế không hoạt động như bàn phím kẻ thù chính. –

Các vấn đề liên quan