2012-11-14 46 views
32

मैंने वीएस 2012 & में SQL सर्वर डेटाबेस प्रोजेक्ट बनाया है जो हमारे डेटाबेस को आयात करता है। जब मैं प्रोजेक्ट का निर्माण करता हूं, तो मुझे त्रुटियों के "ऑब्जेक्ट का अनसुलझा संदर्भ" मिलता है। ये त्रुटियां केवल मेरे डेटाबेस में कुछ दृश्यों के लिए हैं। इन विचारों के लिए वाक्यविन्यास सही हैं & मैं temp तालिकाओं का उपयोग नहीं कर रहा हूँ। इस समस्या को हल करने के लिए मुझे क्या जांचना चाहिए?वीएस 2012 डाटाबेस प्रोजेक्ट "ऑब्जेक्ट का अनसुलझा संदर्भ" त्रुटि

अद्यतन:

CREATE view [Factory].[NonStartedOrders] 
as 
SELECT 

"Customers"."CustomerName", "Customers"."CustomerAName", 
"Customers"."MarketID", 
"Orders"."OrderID", 
"Orders"."ApproveDate", 
"FactoryOrders"."FactoryID", 
"FactoryOrders"."EstEndDate", 
"FactoryOrders"."StatusID", 
"FactoryOrders"."TotalWeight", 
"Karats"."KaratEName" 

FROM (("Taiba"."Sales"."FactoryOrders" "FactoryOrders" 
INNER JOIN "Taiba"."Sales"."Orders" "Orders" ON "FactoryOrders"."OrderID"="Orders"."OrderID") 
INNER JOIN "Taiba"."General"."Customers" "Customers" ON "Orders"."CustomerID"="Customers"."CustomerID") 
INNER JOIN "Taiba"."MasterPiece"."Karats" "Karats" ON "Orders"."MKaratID"="Karats"."KaratID" 

"तैयबा" यहाँ मेरी डेटाबेस नाम है: यह एक उदाहरण है। मुझे केवल इस दृश्य के लिए 30 त्रुटियां मिल रही हैं। ये उनमें से कुछ त्रुटियां हैं:

Error 217 SQL71561: View: [Factory].[NonStartedOrders] has an unresolved reference to object [Taiba].[Sales].[FactoryOrders] 

Error 219 SQL71561: View: [Factory].[NonStartedOrders] contains an unresolved reference to an object. Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: [Taiba].[Sales].[FactoryOrders].[FactoryOrders]::[OrderID], [Taiba].[Sales].[FactoryOrders].[OrderID] or [Taiba].[Sales].[Orders].[FactoryOrders]::[OrderID]. 
+1

चरण: दृश्यों में से एक का एक उदाहरण दिखाने के लिए, और विशिष्ट त्रुटि यह भी ध्यान रखें कि सिर्फ "डेटाबेस" डेटाबेस का मतलब यह नहीं है कि आपके पास वास्तविक त्रुटियां और चेतावनियां नहीं हैं जिन्हें आप पहले नहीं जानते थे। –

+0

मैंने एक उदाहरण के साथ प्रश्न अद्यतन किया है। –

उत्तर

20

मैंने इस समस्या को हल किया।

यह मेरे विचार से कुछ लगता है/एस.पी. इस नामकरण परंपरा (3 भागों योग्य नाम) का उपयोग कर टेबल संदर्भित किया गया है:

DatabaseName.SchemaName.TableName

मैं सभी संदर्भ बदल निम्नलिखित के रूप में होना करने के लिए :

SchemaName.TableName

+3

बस अगर कोई इस त्रुटि को देखता है और उपरोक्त आपके लिए यह नहीं करता है ... यदि आपके पास वीएस डीबी प्रोजेक्ट और कॉलम आप ऑब्जेक्ट में संदर्भित कर रहे हैं तो आपको यह त्रुटि दिखाई देगी त्रुटि मौजूद है जो आपने TFS में चेक की गई तालिका परिभाषाओं से मेल नहीं खाती है (वास्तविक कॉलम के विपरीत)। HTH। –

+1

मुझे सिरदर्द लड़कों को बचाने के लिए धन्यवाद – pqsk

+0

यह वही काम है जो मैं साथ आया था, लेकिन यदि आप सैकड़ों डेटाबेस ऑब्जेक्ट्स के लिए कोड को स्पर्श करते हैं तो मैं इसे बिल्कुल समाधान नहीं कहूंगा। – cdonner

12

मेरे मामले में, समारोह नहीं पाया जा सका है कि कार्रवाई बिल्ड की थी = कोई नहीं और इसलिए यह कंप्यूटर अनुप्रयोग में शामिल नहीं किया जा रहा था इले।

बिल्ड क्रिया को पर बदलना इसे ठीक करें।

+1

यह मेरे लिए काम करता है, मेरे दिन – mmssaann

+0

को बचाने के लिए धन्यवाद इसका मतलब है कि आप वास्तव में फ़ाइल को संकलित नहीं कर रहे हैं। –

+0

मेरे लिए काम किया, धन्यवाद – szaman

34

एक अन्य संभावना यह है कि आपने अपने व्यू/टेबल आदि में उपयोग की जाने वाली स्कीमा परियोजना में मौजूद नहीं है। आपको वीएस डाटाबेस प्रोजेक्ट में स्कीमा जोड़ने की आवश्यकता हो सकती है।

सही परियोजना क्लिक करें और Add > New Item > Schema

+1

यह वही है जो मैं ढूंढ रहा था। – K0D4

+0

इसके लिए धन्यवाद - मैं मैन्युअल रूप से स्रोत नियंत्रण के लिए एक Azure SQL डेटा वेयरहाउस के लिए डेटाबेस प्रोजेक्ट का निर्माण कर रहा हूं और यह वही है जो मुझे –

+0

की आवश्यकता है सुनिश्चित करें कि आप प्रकार स्कीमा फ़ाइल जोड़ें। यदि आप स्कीमा बनाते हैं तो टाइप 'स्क्रिप्ट' (.sql एक्सटेंशन के साथ एक सामान्य फ़ाइल) की एक फ़ाइल जोड़ें, जिसमें अनसुलझा संदर्भ समस्या – DiederikTiemstra

0

स्पष्ट रूप से वर्ग को परिभाषित करने का प्रयास करें:

वर्ग: सुरक्षा योग्य के वर्ग जिस पर अनुमति दी जा रही है निर्दिष्ट करता है। स्कोप क्वालीफायर :: आवश्यक है।

एसक्यूएल GRANT बयान पर डॉक्स पढ़ें: http://technet.microsoft.com/en-us/library/ms187965.aspx

मेरे मामले में मैं एक उपयोगकर्ता निर्धारित तालिका प्रकार था।

GRANT EXECUTE ON TYPE::[dbo].[MessageTableType] TO [PostOffice_Role]; 
6

विजुअल स्टूडियो 2015 में सीटीई बनाने के दौरान यह मेरे साथ हुआ। मैंने बिल्ड एक्शन को संकलित करने के लिए बदल दिया और त्रुटियां चली गईं।

  1. प्रॉपर्टी देखने के लिए त्रुटि
  2. लिए F4 दबाएं साथ फ़ाइल (फ़ाइलें) का चयन करें।
  3. बिल्ड एक्शन ड्रॉप डाउन सूची में 'संकलन' का चयन करें।

उम्मीद है कि यह किसी की सहायता करेगा।

+0

बनी रहेगी, मैंने इसे आजमाया है। वास्तव में त्रुटियां चली गईं, लेकिन स्कीमा तुलना टूटी हुई है। यह अब परियोजना के भीतर संरचना को पहचान नहीं है .... – AXMIM

0

जब आप एक तालिका जोड़ने (sql फ़ाइल का प्रयोग करके) आप भी इस त्रुटि मिलती है जाएगा और आप चेक-इन नहीं करते हैं तो .sqlproj फ़ाइल