Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

डेटाबेस में '#columntable' नाम का एक ऑब्जेक्ट पहले से मौजूद है

किसी क्वेरी के अंत में अस्थायी तालिकाओं को स्वचालित रूप से नहीं छोड़ा जाता है, केवल तभी जब DB से वर्तमान कनेक्शन हटा दिया जाता है या आप उन्हें DROP TABLE #columntable के साथ स्पष्ट रूप से हटा देते हैं

या तो क्वेरी की शुरुआत में तालिका के अस्तित्व के लिए परीक्षण करें या अंत में इसे हमेशा हटा दें (अधिमानतः दोनों)

संपादित करें:जैसा कि मैट्रिन ने अपनी टिप्पणी में कहा था, यह वास्तव में एक पार्स त्रुटि है। यदि आप केवल SQL को निष्पादित करते समय पार्स करते हैं तो आपको वही त्रुटि मिलती है।

इसका परीक्षण करने के लिए मैंने आपकी क्वेरी को विभाजित किया और कोशिश की:

if exists (select 1 from emp where id = 6)
  create table #columntable (newcolumns varchar(100))
GO
if not exists (select 1 from emp where id = 6)
  create table #columntable (oldcolumns varchar(100))
GO

इससे पार्सर खुश है। दिलचस्प बात यह है कि यदि आप गैर-अस्थायी तालिकाओं का उपयोग करने के लिए बदलते हैं तो मूल क्वेरी ठीक हो जाती है (मुझे उन समस्याओं का एहसास होता है जो पैदा करेंगे, मुझे यह जानने में दिलचस्पी थी कि क्वेरी पार्स क्यों नहीं होगी)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टी-एसक्यूएल में टाइमस्टैम्प का मतलब सी # में क्या है?

  2. टी-एसक्यूएल संग्रहित प्रक्रियाओं में गतिशील रूप से टेबल कैसे बनाएं?

  3. चुनिंदा क्वेरी के साथ गतिशील रूप से कॉलम जोड़ें

  4. SQL सर्वर डेटाबेस बैकअप निचले संस्करण पर पुनर्स्थापित करें

  5. किसी भिन्न स्तंभ के मान के आधार पर डिफ़ॉल्ट स्तंभ मान