नहीं, यह संभव नहीं है। आप
INSERT INTO MyLargeTable SELECT * FROM OtherTable
लेकिन यह काम नहीं करेगा, क्योंकि आपका पहचान कॉलम * में शामिल किया जाएगा।
आप
SET IDENTITY_INSERT MyLargeTable ON
INSERT INTO MyLargeTable SELECT * FROM OtherTable
SET IDENTITY_INSERT MyLargeTable OFF
पहले आप डालने सक्षम पहचान मूल्यों इस्तेमाल कर सकते हैं, की तुलना में आप रिकॉर्ड की प्रतिलिपि, तो आप पहचान स्तंभ फिर से सक्षम करें।
लेकिन यह न तो काम करेगा। SQL सर्वर इस मामले में * स्वीकार नहीं करेगा। आपको स्क्रिप्ट में आईडी को स्पष्ट रूप से शामिल करना होगा, जैसे:
SET IDENTITY_INSERT MyLargeTable ON
INSERT INTO MyLargeTable (Id, co1, col2, ...., col80) SELECT Id, co1, col2, ...., col80 FROM OtherTable
SET IDENTITY_INSERT MyLargeTable OFF
तो हम जहां से हमने शुरू किया है, हम वापस आ गए हैं।
प्रबंधन स्टूडियो में तालिका पर राइट क्लिक करने का सबसे आसान तरीका है, इसे INSERT उत्पन्न करें और स्क्रिप्ट चुनें, और उन्हें एक साथ काम करने के लिए थोड़ा सा संपादित करें।
आपको कॉलम निर्दिष्ट करने की आवश्यकता है ... – JNK
आलसी प्रोग्रामिंग के मामले की तरह लगता है। यदि आप तालिका के नाम पर राइट क्लिक करते हैं, तो आप "स्क्रिप्ट के रूप में -> सम्मिलित करें" कर सकते हैं, और सभी गैर-पहचान कॉलम आपके लिए लिखे जाएंगे। Shazam। –
योओयू लंबे समय तक डेटाबेस प्रदर्शन को लाभान्वित नहीं होना चाहिए। आपने गुच्छा के सबसे बुरे जवाब को स्वीकार कर लिया है क्योंकि यह हर बार काम को दोगुना करता है जब यह सही क्वेरी लेता है और सब कुछ खुद को बचाने के लिए होता है। – HLGEM