sql सर्वर अमान्य ऑब्जेक्ट नाम - लेकिन टेबल SSMS टेबल सूची में सूचीबद्ध हैं


336

मैं Stored Procedureएक नए बनाए गए डेटाबेस के लिए बनाने का प्रयास कर रहा हूं । हालाँकि SSMSइंटेलीजेंस आधे से ज्यादा टेबल्स को नहीं पहचानता है जो बनाई गई हैं।

उदाहरण के लिए टेबल के नीचे बाएं हाथ के कॉलम में dbo.Room, जब मेरे पास एक टेबल है , जब मैं dbo.नई क्वेरी विंडो में " " टाइप करता हूं , तो वह टेबल सूचीबद्ध नहीं है, वास्तव में 37 में से केवल 17 टेबल सूचीबद्ध हैं।

मैं intellisense द्वारा सूचीबद्ध तालिकाओं और उन नहीं के बीच कोई अंतर नहीं देख सकता। यदि मैं मैन्युअल रूप से dbo.Room टाइप करता हूं, तो इसे रेखांकित किया जाता है, जिसमें एक त्रुटि है

अमान्य वस्तु का नाम 'dbo.Room' ..

क्या मैं टेबल सेट करने में कुछ चूक गया हूं?

अद्यतन: मैंने टेबल सूची को ताज़ा करने की कोशिश की है (कई बार)


11
उत्तर है कि काम करता है: [DatabaseName].[Schema].[TableName] SO: अमान्य वस्तु नाम sql
इवान चाऊ

जवाबों:


703

प्रयत्न:

Edit-> IntelliSense->Refresh Local Cache

यह टाइपेलहेड समर्थन और पूर्व-निष्पादन त्रुटि का पता लगाने के लिए Intellisense द्वारा कैश किए गए डेटा को ताज़ा करना चाहिए।

नोट: आपका कर्सर दिखने के लिए IntelliSense मेनू के क्वेरी संपादक में होना चाहिए।


8
क्या Intellisense / SSMS अपने आप को समय-समय पर ताज़ा करता है? या यह हमेशा एक मैनुअल प्रक्रिया होनी चाहिए? (मैं 2005 में SSMS के आधार पर अपना अनुमान लगा चुका हूं, लेकिन एक व्यक्ति हमेशा उम्मीद कर सकता है।)
फिलिप केली

37
अविश्वसनीय है कि 2012 में आपको ऐसा करने की आवश्यकता है। क्या वे हर कुछ सेकंड में अपने आप Intellisense को अपडेट नहीं कर सकते हैं?
मैथ्यू लॉक

6
इसके लिए डेटाबेस से टकराने और हर कुछ सेकंड में टेबल / व्यू परिभाषा को खींचने की आवश्यकता हो सकती है।
जिंगलस्तूला

8
नोट: आपका कर्सर दिखने के लिए IntelliSense मेनू के क्वेरी संपादक में होना चाहिए।
bradlis7 15

5
@jinglesthula: यह मुझे डेटाबेस सर्वर से टकराने से बचाएगा !
पॉल

80

Ctrlप्रबंधन स्टूडियो 2008 में + Shift+ Rताज़ा ताज़ा।


मेरे पास यह सुविधा नहीं है ... जब मैं ctrl + Shift + R दबाता हूं तो कुछ नहीं बदलता है
इब्राहिम आमेर

4
@IbrahimAmer आपका कर्सर उपलब्ध होने के लिए Intellisense मेनू विकल्प के लिए एक क्वेरी संपादक में होना चाहिए। अगर इंटेलीजेंस मेनू विकल्प उपलब्ध नहीं है तो शॉर्टकट कुछ नहीं करेगा।
राचेल

यह SQL Server Management Studio 2014 में T-SQL के लिए भी काम करता है
Vahid Amiri

44

सुनिश्चित करें कि चयनित DB वह है जहां तालिका है। मैं स्क्रिप्ट चला रहा था Master। मेरे मामले में, मुझे स्विच करना पड़ा hr_db

यहां छवि विवरण दर्ज करें

धोखेबाज़ गलती, लेकिन, किसी की मदद कर सकता है।


4
मुझे यकीन नहीं है कि यह ईमानदार होने के लिए एक धोखेबाज़ गलती है, क्योंकि जब भी आप सर्वर को फिर से कनेक्ट करते हैं तो किसी स्पष्ट कारण के लिए "मास्टर" में किसी कारण से स्विच करते हैं। :)
क्रिस राए

यदि ऐसा होता और क्वेरी पूरी तरह से तालिका नामों को योग्य नहीं बनाती, तो कोड निष्पादित नहीं होता। मेरा मानना ​​है कि ओपी झूठी सकारात्मक त्रुटि का पता लगाने का वर्णन कर रहा था जब आपके द्वारा वर्णित समस्या एक योगदान कारक नहीं थी। (निश्चित रूप से, मैंने पहले ही संभावना को खारिज कर दिया था जब मैं खोज कर रहा था और यहाँ घाव हो गया था।)
डोडेकोफोन

बिल्कुल मेरा मुद्दा। एसएमएस से कोई संकेत नहीं है कि यह डेटाबेस संदर्भ, या किसी अन्य सुराग को बदल दिया है।
डैनियल ब्लैक

1
@ChrisRae: ऐसा इसलिए masterहै क्योंकि आपके उपयोगकर्ता लॉगिन के लिए डिफ़ॉल्ट डेटाबेस के रूप में सेट है। sp_defaultdbजब आप लॉग इन करते हैं तो Security > Logins > your user login > Properties > Default database
एसएसएमएस

36

एक बार जब आप एक नया SQL सर्वर ऑब्जेक्ट बनाते हैं, तो आपकी नई बनाई गई वस्तु IntelliSence लोकल कैश में अपडेट नहीं होती है और इसके कारण, यह उस ऑब्जेक्ट के नीचे लाल रेखा दिखाती है। तो आपको बस SSMS IntelliSence लोकल कैश को रिफ्रेश करना IntelliSenceहोगा और एक बार इसे रिफ्रेश करने के बाद, स्वचालित रूप से कैश में नव निर्मित वस्तु को जोड़ देगा और लाल रेखा गायब हो जाएगी। इसे इस्तेमाल करे

Edit -> IntelliSense -> Refresh Local Cache या Ctrl+ Shift+R

यहां छवि विवरण दर्ज करें


1
मेरे पास यह सुविधा नहीं है ... जब मैं ctrl + Shift + R दबाता हूं तो कुछ भी नहीं बदलता है
इब्राहिम आमेर

4
@IbrahimAmer आपका कर्सर उपलब्ध होने के लिए Intellisense मेनू विकल्प के लिए एक क्वेरी संपादक में होना चाहिए। अगर इंटेलीजेंस मेनू विकल्प उपलब्ध नहीं है तो शॉर्टकट कुछ नहीं करेगा।
राचेल

18

मेरे मामले में, IntelliSense कैश पूरी तरह से अलग डेटाबेस के लिए ऑब्जेक्ट जानकारी सूचीबद्ध कर रहा था। यदि मैंने SSMS में "न्यू क्वेरी" बटन पर क्लिक किया है, तो यह सर्वर पर मेरी डिफ़ॉल्ट कैटलॉग के लिए एक क्वेरी खोलेगा और क्वेरी एडिटर हमेशा केवल उस डेटाबेस का उपयोग करेगा। कैश रीफ़्रेश करने से कुछ भी नहीं बदला। SSMS को फिर से शुरू करने से कुछ भी नहीं बदला। डेटाबेस बदलने से कुछ भी नहीं बदला।

मैंने उस डेटाबेस पर राइट-क्लिक करके एक क्वेरी बनाना शुरू किया, जिसे मैं वास्तव में उस संदर्भ मेनू से "न्यू क्वेरी" का उपयोग करना और चुनना चाहता था। अब SSMS IntelliSense के लिए सही ऑब्जेक्ट का उपयोग करता है।


3
यह मेरा मामला भी था। साझा करने के लिए धन्यवाद।
बेहरोज करजु

1
USE datbaseName क्वेरी से पहले GO को संदर्भ सेट करने में भी काम आता है
Behrooz Karjoo

@BehroozKarjoo हाँ, मैंने कोशिश की। यह हमेशा काम नहीं करता है। अगर मैं इसे पुन: पेश कर सकता था, तो मैं इसे Microsoft Connect या कुछ और पर रखूंगा। मुझे यकीन है कि वे इसे WONTFIX या समान रूप से परेशान करने वाले कुछ के रूप में चिह्नित करेंगे, लेकिन मैं इसकी रिपोर्ट करूंगा।
बेकन बिट्स

सही काम किया! धन्यवाद! :)
शॉन

SSMS को पुनरारंभ करें और मेरे लिए काम की गई नई क्वेरी पर राइट क्लिक करें।
Hitsa

10

क्या आप निश्चित हैं कि प्रश्न में तालिका मौजूद है?

क्या आपने ऑब्जेक्ट एक्सप्लोरर में टेबल व्यू रिफ्रेश किया है? यह "टेबल" फ़ोल्डर पर राइट क्लिक करके और F5कुंजी दबाकर किया जा सकता है ।

आपको इंटैलिजेंस कैश को फिर से जमा करने की आवश्यकता हो सकती है।

यह मेनू मार्ग का अनुसरण करके किया जा सकता है: संपादित करें -> IntelliSense -> स्थानीय कैश को ताज़ा करें


7

समाधान है:

  • मेनू क्वेरी पर क्लिक करें,
  • इसके बाद 'चेंज डेटाबेस' पर क्लिक करें।
  • अपना उपयुक्त डेटाबेस नाम चुनें।

बस।


6

मेरे साथ एक ही समस्या जब मैंने इस वाक्यविन्यास समस्या को हल किया था।

वाक्य - विन्यास:

Use [YourDatabaseName]
Your Query Here

4

SP3 SQL Server 2008 एंटरप्राइज़ पर स्थापित करने के बाद भी यह अभी भी "समस्या है।" Ctrl+ Shift+ Rजैसे हर कोई मेरे लिए इस समस्या को हल कर रहा है।


मेरे पास यह सुविधा नहीं है ... जब मैं ctrl + Shift + R दबाता हूं तो कुछ भी नहीं बदलता है
इब्राहिम आमेर

@IbrahimAmer आपका कर्सर उपलब्ध होने के लिए Intellisense मेनू विकल्प के लिए एक क्वेरी संपादक में होना चाहिए। अगर इंटेलीजेंस मेनू विकल्प उपलब्ध नहीं है तो शॉर्टकट कुछ नहीं करेगा।
राचेल

3

SSMS 2016 के लिए हल।

एक समान समस्या थी, लेकिन Intellisense एडिट मेनू में नहीं था।

ऐसा लगता है कि इसे ठीक करना Intellisens को चालू और बंद कर रहा था, SQL संपादक पर राइट क्लिक करें और 'Intellisense Enabled' पर क्लिक करें। इसे फिर से चालू करने के लिए 'Intellisense Enabled' पर राइट क्लिक करें। सीटीआर क्यू, मैं भी ऐसा करता हूं।

इससे समस्या हल हो गई, और मुझे यह भी पता है कि एडिट मेनू पर इन्टेलिसेंस मिलता है।


2

मुझे बस SMSS बंद करना था और इसे फिर से खोलना था। मैंने स्थानीय कैश रीफ्रेश करने की कोशिश की और यह काम नहीं किया।


1

क्या आपने कोशिश की: डेटाबेस पर राइट क्लिक करें, और "रिफ्रेश" पर क्लिक करें


हाँ, मैंने कोशिश की है कि, मुझे यकीन है कि यह वहां है, मैं रिकॉर्ड जोड़ सकता हूं और संशोधित कर सकता हूं आदि। बस ने dbo.Room से एक Select * किया और अभी भी मुझे यह रेखांकित करना है कि यह तालिका की सामग्री को आउटपुट करता है। मैं एक रिबूट की कोशिश कर रहा हूँ।
रिचबिट्स

1

मुझे लगता है कि इस सवाल का जवाब पहले ही दिया जा चुका है, हालाँकि, मेरा एक अलग समाधान था:

यदि आप एक स्क्रिप्ट लिख रहे हैं, जहाँ आप तालिकाओं को पुनः बनाए बिना उन्हें छोड़ देते हैं, तो वे तालिकाएँ यदि आप बाद में उन्हें संदर्भित करने का प्रयास करते हैं तो गायब दिखाई देंगी।

नोट: यह लगातार चलने वाली स्क्रिप्ट के साथ नहीं होने वाला है, लेकिन कभी-कभी प्रश्नों के साथ एक स्क्रिप्ट रखना आसान होता है, ताकि उन्हें हर बार टाइप किया जा सके।


0

मैं इस समस्या में भाग गया: ODBC और SQL- सर्वर-प्रमाणीकरण ODBC और Firedac- कनेक्शन में

समाधान: मुझे पैराम मेटाडेफेसा को sqlserver उपयोगकर्ता नाम सेट करना था: FDConnection1.Params.AddPair ('मेटाडेफ़सचेमा', self.FDConnection1.Params.UserName);

विकीडोक साईस: मेटाडेफशमे = डिफ़ॉल्ट स्कीमा नाम। डिजाइन समय कोड >> << शामिल नहीं है !! अगर यह MetaDefSchema के बराबर है, तो SQL-Server-Authenticatoinname से स्कीमा नाम।

सेटिंग के बिना, स्वचालित कोडर बनाता है: dbname.username.tablename -> अमान्य ऑब्जेक्ट नाम

MetaDefSchema को sqlserver-username: dbname.tablename -> काम करता है!

यहाँ भी देखें एम्ब्रैडेरो-डॉक: http://docwiki.embarcadero.com/RADStudio/Rio/en/Connect_to_Microsoft_SQL_Server_(FireDAC)

आशा है, यह किसी और की मदद करता है ।।

सादर, लुट्ज़


0

Azure डेटा स्टूडियो में "cmd + shift + p" दबाएं और "intellisense" टाइप करें, फिर आपको intellisense cache को रिफ्रेश करने का विकल्प दिखाई देगा।


0

मॉडल लिखने के बाद अपना माइग्रेशन बनाना न भूलें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.