2012-07-11 16 views
16

मैं निम्नलिखित कोडप्राथमिक कुंजी के साथ दृश्य बनाएं?

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 परिभाषित करना चाहते हैं के रूप में एक प्राथमिक कुंजी है कि संभव है के साथ एक दृश्य बनाने के? यदि यह संभव है तो मैं कैसे कर सकता हूं?

उत्तर

26

आप दृश्य पर प्राथमिक कुंजी नहीं बना सकते हैं। SQL सर्वर में आप create an index on a view कर सकते हैं लेकिन प्राथमिक कुंजी बनाने के लिए यह अलग है।

यदि आप हमें अधिक जानकारी देते हैं कि आप अपने विचार पर एक कुंजी क्यों चाहते हैं, तो शायद हम इसके साथ मदद कर सकते हैं।

+2

मैं दृश्य से एक मॉडल बनाता हूं और मैं एक इकाई कुंजी के रूप में स्नो मैनुअल बदलता हूं। जब मैं मॉडल को अद्यतन करता हूं तो मुझे इसे एक इकाई कुंजी के रूप में भी बदलना चाहिए। यह मेरे लिए कार्यात्मक रूप से नहीं है। –

+10

"यदि आप हमें अधिक जानकारी देते हैं कि आप अपने विचार पर एक कुंजी क्यों चाहते हैं" - इकाई फ्रेमवर्क एक चेतावनी फेंकता है कि दृश्य में कोई प्राथमिक कुंजी नहीं है: 'त्रुटि 6002: तालिका/दृश्य' mydb.dbo.myview 'नहीं है एक प्राथमिक कुंजी परिभाषित है ... ' – Ivan

+5

@Ivan निम्नलिखित लिंक उस स्थिति के लिए मदद कर सकता है: http://stackoverflow.com/a/2715299/1464699 –

1

आप प्राथमिक कुंजी (प्रति कहने) के लिए सक्षम नहीं हो सकते हैं, लेकिन यदि आपका दृश्य प्राथमिक कुंजी वाले तालिका पर आधारित है और कुंजी दृश्य में शामिल है, तो प्राथमिक कुंजी दृश्य में दिखाई देगी भी। प्राथमिक कुंजी की आवश्यकता वाले अनुप्रयोगों को दृश्य स्वीकार कर सकते हैं क्योंकि यह लाइट्सविच के मामले में है।

+0

से साफ़ करने के लिए धन्यवाद, मैं इसके लिए प्रयास करता हूं @DLallemant, लेकिन वास्तविक तालिका की प्राथमिक कुंजी प्राथमिक कुंजी दुश्मन दृश्य तालिका के रूप में काम नहीं कर रही है। –

संबंधित मुद्दे