2010-03-18 19 views
17

मैं एसक्यूएल के बारे में एक पुस्तक पढ़ रहा हूं।इस क्वेरी का क्या अर्थ है?

है कि इस पुस्तक में, मैं नीचे अजीब क्वेरी देखा:

SELECT * into mycustomer from customer WHERE 1=2 

इस क्वेरी में, क्या "जहां 1 = 2" है?

+0

जैसा कि सभी ने नीचे कहा है, स्थिति हमेशा झूठी है। मैंने उस तकनीक को डायनामिक एसक्यूएल के साथ क्वेरी में कॉलम के लिए एक वर्णक प्राप्त करने के तरीके के रूप में देखा है - लेकिन तब आपके पास एक आईएनटीओ क्लॉज नहीं है। –

+7

जोनाथन: आईएनटीओ क्लॉज का उपयोग 'ग्राहक' पूछताछ करके एक नई तालिका 'mycustomer' बनाने के लिए किया जाता है। इस मामले में कोई पंक्तियां वापस नहीं की जाएंगी, इसलिए एक खाली तालिका बनाई जाएगी। टेबल संरचना की प्रतिलिपि बनाने के लिए यह एक मुहावरे है। 'समान चीज़' 1 = 1 जोड़ने के लिए – Gabe

उत्तर

25

आमतौर पर एक तालिका की संरचना को दूसरे मामले में कॉपी करने के लिए उपयोग किया जाता है, जैसा कि आपके मामले में है।

SELECT * INTO mycustomer FROM customer WHERE 1=2 

इस कोड को अपनी नई तालिका MyCustomer में तालिका Customer की एक समान संरचना पैदा करता है। नोट कि SQL सर्वर में, बाधाओं की प्रतिलिपि नहीं बनाई जाती है; तो शायद आपको बाधाओं को फिर से बनाना होगा।

+1

आप एकमात्र ऐसे व्यक्ति हैं जिन्होंने इसे अभी तक सही पाया है। बहुत बढ़िया! – Gabe

+0

मुझे मिल गया! धन्यवाद, केमान !! – zihado

3

1=2 हमेशा false होगा।

यह WHERE खंड निर्दिष्ट करने का एक तरीका है जो हमेशा false का मूल्यांकन करेगा।

इसी तरह की चीज WHERE 1=1 है जो हमेशा true का मूल्यांकन करती है।

+0

+1। –

0
WHERE 1=2 

असंभव है ताकि स्थिति हमेशा झूठी रहे। क्या यह एक टाइपो है? शायद यह चर के भार को साफ़ करना है? जैसा कि चयन में सभी कॉलम @COLUMNNAME वर्र्स

0

इसके अलावा कुछ नहीं सिर्फ अपने मामले में एक एसक्यूएल injecttion है जैसे कि यह हमेशा गलत है, तो 1 = 1 अपने असली से और सभी ग्राहकों डेटा

1

पुराने दिनों में वापस जब मैं क्लासिक एएसपी उपयोग कर रहा था वापस आ जाएगी, मैं इस्तेमाल किया जाएगा तालिका के कॉलम परिभाषाओं को पुनर्प्राप्त करने के लिए "WHERE 1 = 2" संरचना और इसकी सामग्री नहीं। आजकल ऑब्जेक्ट-रिलेशन मैपिंग फ्रेमवर्क का उपयोग कर कॉलम परिभाषाओं को पुनर्प्राप्त करने के बेहतर तरीके हैं।

मेरा अनुमान है कि जो पुस्तक आप पढ़ रहे हैं वह थोड़ी पुरानी है, या इस क्वेरी का संदर्भ गलत है।

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