बाध्य नहीं किया जा सकता है मैं 2 टेबल है:एसक्यूएल अद्यतन तालिका सेट बहु-भाग पहचानकर्ता
- Table1 = गैस स्टेशनों के नाम (जोड़ों में)
- तालिका 2 = सह है तालमेल की जानकारी (देशांतर और अन्य बातों के साथ अक्षांश)
Table1 का उदाहरण:
StationID1 StationID2 Name1 Name2 Lattitude1 Longitude1 Lattitude2 Longitude2 Distance
------------------------------------------------------------------------------------------------
93353477 52452 FOO BAR NULL NULL NULL NULL NULL
93353527 52452 HENRY BENNY NULL NULL NULL NULL NULL
93353551 52452 GALE SAM NULL NULL NULL NULL NULL
का उदाहरण तालिका 2:
IDInfo Name Lattitude Longitude
-------------------------------------------
93353477 BAR 37.929654 -87.029622
मैं जानकारी जो tableA
में रहता समन्वय के साथ इस तालिका को अपडेट करना चाहते। मैं प्रति SQL Server 2005: The multi-part identifier … could not be bound
update table1
set t1.[Lattitude1] = t2.[Lattitude]
from table1 t1
left join table2 t2
on (t1.StationID1 = t2.IDInfo)
मैं निम्न त्रुटि संदेश मिलता है, जैसा कि नीचे करने की कोशिश की:
संदेश 4104, स्तर 16, राज्य 1, पंक्ति 1
बहु-भाग पहचानकर्ता "t1 । अक्षांश 1 "बाध्य नहीं हो सका।
हालांकि, अगर मैं निम्नलिखित करता हूं तो यह काम करता है जिसे मैं किसी अन्य तालिका में स्टोर कर सकता हूं।
SELECT t1.[StationID1]
,t1.[StationID2]
,t1.[Name1]
,t1.[Name2]
,t2.[Lattitude] AS [Lattitude1]
,t2.[Longitude] AS [Longitude1]
,t3.[Lattitude] AS [Lattitude2]
,t3.[Longitude] AS [Longitude2]
from table1 t1
left join table2 t2
on (t1.StationID1 = t2.IDInfo)
left join table2 t3
on (t1.StationID2 = t2.IDInfo)
मैं बहुत एसक्यूएल करने के लिए नया हूँ और एक कठिन समय क्यों कुछ चीजें काम करते हैं और दूसरों को नहीं समझ हो रहा है। मेरे प्रारंभिक प्रश्न के ऊपर पोस्ट किए गए लिंक के आधार पर काम करना चाहिए था - नहीं? शायद मैं सीधे सोच नहीं रहा क्योंकि मैंने कोशिश करने में कई घंटे बिताए हैं और मुझे अंत में एक सहकर्मी से मदद मिली (उसने ऊपर बताए गए दृष्टिकोण का सुझाव दिया)।
फोरम क्लॉज में उपनाम या दोहराना तालिका 1 का उपयोग न करने के लिए बेहतर: टेबल 1 से सेट करें तालिका 1 सेट lattitude1 = table2। Table2 से अक्षांश जहां table2.IDInfo = table1.StationID1। एसक्यूएल सर्वर का "अद्यतन ... से" निर्माण गैर-मानक है - खासकर जब उपनाम का उपयोग किया जाता है - थोड़ा रहस्यमय। यदि FROM क्लॉज में कोई तालिका या उपनाम नाम अद्यतन करता है जो UPDATE के बाद आता है, तो उन तालिकाओं को जादुई रूप से पहचाना जाता है, लेकिन यदि कोई दूरस्थ क्वेरी शामिल है तो यह तोड़ सकता है (अद्यतन के लिए सहायता देखें .. से, और http://bit.ly/14EXoZP)। –
@cgatian, bobs - आपकी मदद के लिए बहुत बहुत धन्यवाद। आपके दोनों समाधान काम करते थे। मैंने समस्या का उल्लेख किया है स्टीव कास ने बस मामले में उल्लेख किया है। आप सभी को धन्यवाद। – codingknob