2012-07-11 15 views
16

utworzyć widok z poniższych kodówUtwórz widok za pomocą klucza podstawowego?

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) 

chcę definiować CONVERT(nvarchar, YEAR(okuma_tarihi)) + 'T1' AS sno jako klucz podstawowy jest to możliwe? Jeśli to możliwe, jak mogę to zrobić?

Odpowiedz

26

Nie można utworzyć klucza podstawowego w widoku. W SQL Server można: create an index on a view, ale to jest inne niż tworzenie klucza podstawowego.

Jeśli podasz nam więcej informacji o tym, dlaczego chcesz mieć klucz na swoim widoku, być może pomożemy w tym.

+2

Tworzę model z widoku i zmieniam manualnie jako klucz encji. Kiedy aktualizuję model, muszę go również zmienić jako klucz encji. to nie jest funkcjonalne dla mnie. –

+10

"Jeśli podasz nam więcej informacji, dlaczego chcesz mieć klucz w widoku" - Entity Framework zgłasza ostrzeżenie, że widok nie ma klucza głównego: 'Błąd 6002: Tabela/widok 'mydb.dbo.myview' nie mieć klucz podstawowy zdefiniowany ... ' – Ivan

+5

@Ivan Poniższy link może pomóc w tej sytuacji: http://stackoverflow.com/a/2715299/1464699 –

1

Może nie być możliwe utworzenie klucza podstawowego (za wypowiedź), ale jeśli widok jest oparty na tabeli z kluczem podstawowym, a klucz jest uwzględniony w widoku, klucz podstawowy zostanie odzwierciedlony w widoku również. Aplikacje wymagające klucza podstawowego mogą akceptować widok, tak jak w przypadku Lightswitch.

+0

Próbuję tego samego @DLallemant, ale klucz podstawowy rzeczywistej tabeli nie działa jako tabela widoku klucza głównego wroga. –

Powiązane problemy