मैं एमएस एक्सेस 2003 का उपयोग कर रहा हूं। मैं एमएस एक्सेस में 'क्वेरी' कहलाता है, जिसमें एसक्यूएल स्टेटमेंट्स डालने के लिए बहुत कुछ करना चाहता हूं। क्या ऐसा करने के लिए कोई आसान (या वास्तव में कोई रास्ता) है?क्या एमएस-एक्सेस क्वेरी में एकाधिक सम्मिलन विवरण बनाने का कोई तरीका है?
उत्तर
हां और ना:
मेरे सिर के ऊपर बंद, कोड यह कुछ ऐसा दिखाई देगा करने के लिए।
आप ऐसा नहीं कर सकते:
insert into foo (c1, c2, c3)
values ("v1a", "v2a", "v3a"),
("v1b", "v2b", "v3b"),
("v1c", "v2c", "v3c")
लेकिन आप
insert into foo (c1, c2, c3)
select (v1, v2, v3) from bar
कर सकते हैं आप पहले से ही एक तालिका में डेटा नहीं है, तो क्या है कि आप प्राप्त करता है? खैर, आप हार्ड कोड किए गए परिणामों के साथ चयन के कई यूनियनों से बना एक चयन कथन तैयार कर सकते हैं।
INSERT INTO foo (f1, f2, f3)
SELECT *
FROM (select top 1 "b1a" AS f1, "b2a" AS f2, "b3a" AS f3 from onerow
union all
select top 1 "b1b" AS f1, "b2b" AS f2, "b3b" AS f3 from onerow
union all
select top 1 "b1c" AS f1, "b2c" AS f2, "b3c" AS f3 from onerow)
नोट: मैं भी एक डमी तालिका के किसी न किसी रूप में शामिल करने के लिए है (जैसे, onerow) संघ (इसमें कम से कम एक पंक्ति होना आवश्यक है) की अनुमति के में पहुँच को बेवकूफ बनाने की है, और आप की जरूरत है " शीर्ष 1 "यह सुनिश्चित करने के लिए कि आपको एक से अधिक पंक्ति
पर फिर से तालिका के लिए दोहराना नहीं मिलता है, लेकिन फिर, यह संभवतः तीन अलग-अलग सम्मिलन विवरण, करना आसान होगा, खासकर यदि आप पहले से ही चीजों का निर्माण कर रहे हैं एक लूप (जब तक कि आवेषण करने की लागत निश्चित रूप से कोड करने के लिए आपके समय की लागत से अधिक न हो)।
नहीं - एक्सेस में एक क्वेरी एक एकल SQL कथन है। एक क्वेरी ऑब्जेक्ट के भीतर कई कथनों का बैच बनाने का कोई तरीका नहीं है। आप एकाधिक क्वेरी ऑब्जेक्ट्स बना सकते हैं और उन्हें मैक्रो/मॉड्यूल से चला सकते हैं।
व्यक्तिगत रूप से, मैं इसे करने के लिए एक वीबीए सबराउटिन बनाउंगा, और कुछ प्रकार के एसक्यूएल कनेक्शन का उपयोग कर डेटाबेस से कनेक्ट करूंगा।
Sub InsertLots()
Dim SqlConn as Connection
SqlConn.Connect("your connection string")
SqlConn.Execute("INSERT <tablename> (column1, column2) VALUES (1, 2)")
SqlConn.Execute("INSERT <tablename> (column1, column2) VALUES (2, 3)")
SqlConn.Close()
End Sub
अच्छा समाधान। मैं हमेशा भूल जाता हूं कि एक्सेस में निर्मित एक संपूर्ण प्रोग्रामिंग भाषा है जिसका उपयोग आप डेटाबेस –
मुझे लगता है कि जोनाथन करता है, एक विशेष डेटा इंटरफ़ेस का प्रस्ताव देने के लिए यह अतुलनीय है, जब आपने उस संदर्भ को स्पष्ट नहीं किया है जिसमें कोड चलाना है।
यदि डेटा स्टोर जेट डेटाबेस है, तो एडीओ के किसी भी रूप का उपयोग करने के लिए यह बहुत कम समझ में आता है जब तक कि आप एक स्क्रिप्टिंग प्लेटफ़ॉर्म से अपना कोड नहीं चला रहे हैं, जहां यह पसंदीदा विकल्प है। यदि आप एक्सेस में हैं, तो यह निश्चित रूप से मामला नहीं है, और डीएओ पसंदीदा इंटरफ़ेस है।
@Rik गार्नर: सुनिश्चित नहीं हैं कि, 'बैच' लेकिन
INSERT INTO foo (f1, f2, f3)
SELECT *
FROM (select top 1 "b1a" AS f1, "b2a" AS f2, "b3a" AS f3 from onerow
union all
select top 1 "b1b" AS f1, "b2b" AS f2, "b3b" AS f3 from onerow
union all
select top 1 "b1c" AS f1, "b2c" AS f2, "b3c" AS f3 from onerow)
निर्माण से क्या मतलब है हालांकि एक ही एसक्यूएल बयान जा रहा है, वास्तव में एक समय में प्रत्येक पंक्ति एक डिस्क डालें (बजाय सब होगा एक बार में) लेकिन एक ही लेनदेन में: आप एक प्रासंगिक बाधा जोड़कर इसका परीक्षण कर सकते हैं
ALTER TABLE foo ADD
CONSTRAINT max_two_foo_rows
CHECK (2 >= (SELECT COUNT(*) FROM foo AS T2));
मान लिया जाये कि तालिका खाली है, ऊपर INSERT INTO..SELECT..
काम करना चाहिए: तथ्य यह है नहीं है, क्योंकि बाधा के बाद पहली पंक्ति के बाद तीनों डाला गया (एक एएनएसआई के उल्लंघन के बजाय डाला गया था जांच की गई एसक्यूएल-9 2 लेकिन यह आपके लिए एमएस एक्सेस है); तथ्य यह है कि तालिका खाली बनी हुई है कि आंतरिक लेनदेन वापस लुढ़का गया था।
@ डेविड डब्ल्यू।फेंटन: आपके पास डीएओ के लिए एक मजबूत व्यक्तिगत वरीयता हो सकती है लेकिन कृपया किसी वैकल्पिक डेटा एक्सेस तकनीक (इस मामले में एडीओ) चुनने के लिए किसी पर भी कठोर न हों, खासकर वेनिला INSERT
और जब वे अपनी टिप्पणियों के साथ अर्हता प्राप्त करते हैं, तो " मेरे सिर के ऊपर, कोड करने के लिए यह कुछ की तरह दिखना चाहिए ... "सब के बाद, आप एक CHECK
बाधा :)
एमएस ने डीएओ से कुछ विशेषताओं को पीछे छोड़ दिया जब एमएस डीएओ पर एडीओ को बढ़ावा दे रहा था। मेरी आशा है कि अब जेट के अपने निजी संस्करण के उपयोग के साथ, डीएओ को जेट का समर्थन करने वाली हर चीज का समर्थन करने के लिए अपडेट किया जाएगा। –
मुझे भी आशा है कि आप सही हैं। लेकिन जब तक वे ऐसा नहीं करते हैं, तब भी एडीओ को डीएओ में छेद प्लग करने की आवश्यकता होती है: कंप्रेसर, पंक्ति स्तर लॉकिंग इत्यादि के साथ बाधाओं की जांच करें। यदि पोस्टर ने "संदर्भ को स्पष्ट नहीं किया है" तो निश्चित रूप से उत्तर एडीओ या डीएओ में हो सकते हैं, केवल जीवनशैली पसंद, नहीं?:) – onedaywhen
जब आप SQL सर्वर में अपग्रेड करते हैं तो डीएओ फ़ंक्शन कैसे करता है? – JeffO
एमएस एक्सेस एक ही एसक्यूएल खिड़की से आने वाले अनेक डालने की अनुमति नहीं है बनाने के लिए डीएओ उपयोग नहीं कर सकते। आप चाहते हैं सम्मिलित, का कहना है कि तालिका में 10 पंक्तियाँ, कहते हैं कि फिल्म (मध्य, mname, mdirector, ....), आप खोलने के लिए एसक्यूएल खिड़कियों की आवश्यकता होगी,
- प्रकार 1 stmt, 1 stmt निष्पादित, 1 stmt
- प्रकार 2 stmt हटाने के लिए, 2 stmt निष्पादित, 2 stmt हटाना
- प्रकार 3 stmt, 3 stmt निष्पादित, 3 stmt हटाना ......
बहुत उबाऊ। इसके बजाय आप ऐसा करके एक्सेल से लाइनों आयात कर सकते हैं:
- तालिका नाम है कि आप पहले से ही एक्सेल (आयात संवाद बॉक्स खोला जाता है)
- एक्सेल करने के लिए ब्राउज़ से बनाया है
- आयात पर राइट क्लिक करें रिकॉर्ड युक्त फ़ाइल तालिका में आयात करने के लिए "तालिका में रिकॉर्ड की एक प्रति संलग्न करें:" पर क्लिक करें
- पर "ठीक है"
- आवश्यक तालिका का चयन करें (इस उदाहरण फिल्म में)
- क्लिक करें
- वर्कशीट उस स्प्रैडशीट में डेटा शामिल
- समाप्त
एक्सेल में पूरे डाटासेट तालिका में लोड किया गया है "फिल्म"
एमएस एक्सेस भी डेटा संलग्न कर सकते हैं पर क्लिक करें का चयन करें एक साधारण पाठ फ़ाइल से एक तालिका में। सीएसवी मान (मैंने बस सभी को कॉमा को हटाने के लिए सभी बॉक्स को बदलें) और बाहरी डेटा के तहत टेक्स्ट फ़ाइल का चयन करें।
From this:
INSERT INTO CLASS VALUES('10012','ACCT-211','1','MWF 8:00-8:50 a.m.','BUS311','105');
INSERT INTO CLASS VALUES('10013','ACCT-211','2','MWF 9:00-9:50 a.m.','BUS200','105');
INSERT INTO CLASS VALUES('10014','ACCT-211','3','TTh 2:30-3:45 p.m.','BUS252','342');
To this:
10012,ACCT-211,1,MWF 8:00-8:50 a.m.,BUS311,105
10013,ACCT-211,2,MWF 9:00-9:50 a.m.,BUS200,105
10014,ACCT-211,3,TTh 2:30-3:45 p.m.,BUS252,342
- 1. क्या एकाधिक सम्मिलन कथन का उपयोग करते हुए SCOPE_IDENTITY का उपयोग करने का कोई तरीका है?
- 2. क्या सी # में अनाम structs बनाने का कोई तरीका है?
- 3. एकल क्वेरी में एकाधिक SQL अद्यतन विवरण
- 4. क्या कोई सेट बनाने का कोई त्वरित तरीका है?
- 5. क्या सी में कार्य परमाणु बनाने का कोई तरीका है? ।
- 6. क्या Python में कक्षा संपत्ति बनाने का कोई तरीका है?
- 7. क्या Emacs में "प्रोजेक्ट फ़ाइल" बनाने का कोई तरीका है?
- 8. जावा में कोई तारीख बनाने का सही तरीका क्या है?
- 9. क्या एक स्क्रिप्ट में एकाधिक ट्रिगर्स बनाने का कोई तरीका है?
- 10. क्या आईपैड सिम्युलेटर को बड़ा बनाने का कोई तरीका है?
- 11. क्या जावास्क्रिप्ट लुकअप टेबल बनाने का कोई आसान तरीका है?
- 12. क्या एंड्रॉइड डेटाबेस क्वेरी तेजी से बनाने का कोई आसान तरीका है?
- 13. क्या सरलजसन को कम सख्त बनाने का कोई तरीका है?
- 14. क्या एक्जिक्यूटर्स सर्विस को रिकर्सिवली बनाने का कोई तरीका है?
- 15. क्या आपका अपना HTML तत्व बनाने का कोई तरीका है?
- 16. क्या पहले से सशर्त बनाने का कोई तरीका है?
- 17. क्या jQuery आउटपुट * वास्तविक मार्कअप * बनाने का कोई तरीका है?
- 18. क्या Rails ActiveRecord निजी गुण बनाने का कोई तरीका है?
- 19. क्या टीएफएस को जोड़ने योग्य बनाने का कोई तरीका है?
- 20. क्या Celery/RabbitMQ लगातार बनाने का कोई तरीका है?
- 21. क्या कोडनिर्देशक पर सबडोमेन बनाने का कोई आसान तरीका है?
- 22. क्या TSQL चर स्थिर बनाने का कोई तरीका है?
- 23. क्या "रेक मार्ग" को बेहतर बनाने का कोई तरीका है?
- 24. क्या जावास्क्रिप्ट से टेक्स्टबॉक्स में सम्मिलन बिंदु प्राप्त करने का कोई तरीका है?
- 25. स्वत: अर्धविराम सम्मिलन और वापसी विवरण
- 26. जावा में xsd स्कीमा बनाने का कोई तरीका है?
- 27. Android में ListPreference एकाधिक विकल्प बनाने का आसान तरीका?
- 28. क्या कोई डायनामिक ऑब्जेक्ट बनाने का कोई तरीका है जो इंटरफ़ेस का समर्थन करता है?
- 29. रेल में एकाधिक फ़िल्टर बनाने का सबसे अच्छा तरीका
- 30. LINQ क्वेरी में एकाधिक रिकॉर्ड हटाने का सबसे अच्छा तरीका?
के प्रबंधन को स्वचालित करने के लिए कर सकते हैं बहुत ही रोचक और वर्णनात्मक उत्तर। यह निश्चित रूप से मेरी मदद करेगा जो मैं कर रहा था –
यही तरीका है! केवल एक युक्ति: यदि आपके पास 50 से अधिक नेस्टेड 'SELECT' कथन है, तो आपको उन्हें 50 या उससे कम समूहों में निष्पादित करना होगा। मेरे पास 1080 पंक्तियां डालने के लिए थीं और मैंने उन्हें 48 के समूहों में विभाजित किया था। अन्यथा एक्सेस (मैंने v। 2010 का उपयोग किया) आपको "बहुत जटिल क्वेरी" त्रुटि के साथ चेतावनी देगा। –
क्या किसी ने इसे ओल्डबी का उपयोग कर डीबीएफ फाइलों में डालने के साथ काम करने के लिए प्राप्त किया है? – reggaeguitar