यह सुनिश्चित नहीं है कि आप एक चर में अद्यतन कथन बनाने के लिए गतिशील एसक्यूएल का उपयोग किये बिना इसे पूरा करने में सक्षम होंगे।
यह बयान तालिका नाम आप में डाल के आधार पर कॉलम की एक सूची वापस आ जाएगी:
select name from syscolumns
where [id] = (select [id] from sysobjects where name = 'tablename')
सुनिश्चित नहीं हैं कि अगर मैं एक पाश यहाँ से बच सकते हैं .... आप से परिणाम लोड करने की आवश्यकता होगी एक कर्सर में ऊपर और फिर उससे एक क्वेरी बनाएँ। छद्म कोडित:
set @query = 'update [1607348182] set '
load cursor --(we will use @name to hold the column name)
while stillrecordsincursor
set @query = @query + @name + ' = tmp_[1607348182]. ' [email protected] + ','
load next value from cursor
loop!
जब क्वेरी पाश में बनाया जा रहा किया जाता है, कार्यकारी sp_executesql @query का उपयोग करें।
बस थोड़ी सी चेतावनी ... इस तरह के लूप में गतिशील एसक्यूएल का निर्माण थोड़ा उलझन में हो सकता है। मुसीबत शूटिंग के लिए, लूप में एक चुनिंदा @query डालें और @query को बनाया गया देखें।
संपादित करें: सुनिश्चित नहीं है कि आप एक ही समय में सभी 1000 पंक्तियों को एक बार में करने में सक्षम होंगे ... तर्कसंगत सीमाएं (वर्कर (8000)?) आकार पर है जो @query भी बढ़ सकता है। आपको कोड को विभाजित करना पड़ सकता है ताकि यह एक समय में 50 कॉलम संभाल सके। कॉलम को syscolumns चयन कथन से एक आईडी के साथ एक temp तालिका में रखें और अपना गतिशील एसक्यूएल बनाएं ताकि यह एक समय में 20 कॉलम (या 50?) अपडेट हो।
एक और विकल्प बड़े पैमाने पर इसे बनाने के लिए एक्सेल का उपयोग करना होगा। कॉलम का चयन करें और परिणामों को कॉलम में स्प्रेडशीट में कॉपी करें। रखो '= कॉलम बी, टीएमपी में। [12331312] कॉलम सी में, कॉलम डी में कॉलम कॉपी करें, और कॉलम ई में कॉमा करें। संपूर्ण स्प्रेडशीट को नोटपैड में कॉपी करें, और आपके पास आपके लिए बनाए गए अद्यतन कथन के कॉलम होना चाहिए। एक बुरा समाधान नहीं है अगर यह एक शॉट घटना है, तो सुनिश्चित नहीं है कि मैं इस पर चल रहे समाधान के रूप में भरोसा करता हूं।
मैं एक 'ट्रिगर' का उपयोग करने या अपनी स्कीमा को संशोधित करने की अनुशंसा करता हूं ताकि आपको ऐसा करने की आवश्यकता न हो। –
मुझे समझ में नहीं आता है। आपके पहले अपडेट के बाद दो तालिकाओं में समान पंक्तियां होंगी, तो आप उम्मीद कर रहे हैं कि दूसरा अपडेट क्या करेगा? – PaulG
ट्रैविस जी, मैं डीबी स्कीमा को संशोधित करने के लिए आपसे सहमत हूं लेकिन दुर्भाग्य से मुझे अपनी परियोजना में इस स्कीमा का पालन करना चाहिए। – amuliar