ऐसा न करें। यह सलाह के साथ एक साथ जाता है कि कभी भी SELECT * का उपयोग न करें, इस मामले में जब आप सभी कॉलम सूचीबद्ध कर रहे हैं तो यह उनके आंतरिक आदेश का कारण क्यों है?
ने कहा, यदि आपको बिल्कुल होना चाहिए, तो यहां एक डेमो है जो तालिका को नहीं छोड़ता है। कॉलम को छोड़ना होगा, क्योंकि आप बीच में सम्मिलित नहीं कर सकते हैं।
create table BOB(col1 int, colspace int, col2 int, col3 varchar(10))
insert BOB values (1,3, 2,'test')
;
alter table BOB add col2_copy int, col3_copy varchar(10), NewCol datetime
;
update BOB set col2_copy = col2, col3_copy = col3
;
alter table BOB drop column col2
alter table BOB drop column col3
;
alter table BOB add col2 int, col3 varchar(10)
;
update BOB set col2 = col2_copy, col3 = col3_copy
;
alter table BOB drop column col2_copy
alter table BOB drop column col3_copy
;
select * from BOB
आपके बाधाओं और चूक में शामिल होने के बाद यह अधिक कठिन हो जाता है।
आपको तालिका को फिर से बनाना क्यों होगा, और कॉलम ऑर्डर आपके लिए क्यों मायने रखता है? –
संभावित डुप्लीकेट: [विशिष्ट क्रमिक स्थिति में एक नया टेबल कॉलम जोड़ें] (http://stackoverflow.com/questions/769828/add-a-new-table-column-to- विशिष्ट-ordinal-position), [कॉलम जोड़ें विशिष्ट स्थान पर SQL सर्वर पर?] (http://stackoverflow.com/questions/3968954/add-column-on-sql-server-on- विशिष्ट-place) –
लिंक के लिए धन्यवाद, हालांकि वे सभी तालिका को पुनर्निर्मित करने का उल्लेख करते हैं । – GordyII