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

पंक्ति की प्रतिलिपि बनाएँ और स्तंभों का एक छोटा उपसमूह बदलें?

नोट:यह उत्तर SQL सर्वर के लिए है। इस उत्तर के बाद प्रश्न में टैग जोड़ा गया था

मैं यह मानने जा रहा हूं कि आपकी तालिका में एक IDENTITY है कॉलम जो कि प्राथमिक कुंजी भी है, अच्छे डिजाइन के सिद्धांतों के अनुसार। आइए यह भी मान लें कि यह नहीं करता है कॉलम की गणना की है (या टाइमस्टैम्प या कोई भी प्रकार जिसके लिए अधिक हेरफेर की आवश्यकता होगी)। आइए अंत में मान लें कि आप कम से कम इस आईडी कॉलम का नाम जानते हैं, जो मानक है, उदा। "id ".

आप इस क्रम का उपयोग कर सकते हैं:

SELECT * INTO #tmp FROM tbl WHERE id = @copyfrom;
ALTER TABLE #tmp DROP COLUMN id;
UPDATE #tmp SET
   column1 = ...,
   column2 = ...,
   column3 = ...;  --- the subset of columns you want to change
INSERT tbl SELECT * FROM #tmp;

एसक्यूएल फिडल डेमो



  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. छँटाई के साथ पुनरावर्ती सबक्वेरी

  5. इसके लिए डुप्लीकेट परिभाषा:'पहचान प्रकार'