উত্তর:
সন্নিবেশ বিবৃতিতে আসলে এটি করার জন্য একটি বাক্য গঠন রয়েছে। যদিও আপনি "*" নির্বাচন না করে কলামের নাম উল্লেখ করেছেন তা অনেক সহজ:
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...
আমি আরও ভাল করে এটি স্পষ্ট করতে পারি কারণ কোনও কারণে এই পোস্টটি কয়েকটি ডাউন-ভোট পাচ্ছে।
INSERT INTO ... সিলেক্ট থেকে সিলেক্ট করুন যখন আপনি সারণীটি সন্নিবেশ করছেন (উপরের আমার উদাহরণে "new_table") ইতিমধ্যে উপস্থিত রয়েছে। অন্যরা যেমন বলেছে, নির্বাচন করুন ... কমান্ডের অংশ হিসাবে আপনি যখন নতুন টেবিলটি তৈরি করতে চান তখন নির্বাচনের জন্য সিনট্যাক্স IN
কমান্ডের অংশ হিসাবে নতুন টেবিলটি তৈরি করা দরকার কিনা আপনি তা নির্দিষ্ট করেননি, সুতরাং INSERT INTO ... আপনার গন্তব্য সারণী ইতিমধ্যে উপস্থিত থাকলে নির্বাচন করুন থেকে ভাল নির্বাচন করা উচিত।
এটা চেষ্টা কর:
INSERT INTO newTable SELECT * FROM initial_Table
আপনি নিম্নলিখিত হিসাবে সাব-কোয়েরি ব্যবহার করে সন্নিবেশ করতে পারেন:
INSERT INTO new_table (columns....)
SELECT columns....
FROM initial_table where column=value
এখান থেকে :
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename
আপনি একটি select into
বিবৃতি ব্যবহার করতে পারেন । ডাব্লু 3 স্কুলগুলিতে আরও দেখুন ।
একটি সহজ উপায় আছে যেখানে আপনাকে কোনও কোড টাইপ করতে হবে না (পরীক্ষার জন্য আদর্শ বা এককালীন আপডেট):
ধাপ 1
ধাপ ২
ধাপ 3
পদক্ষেপ 4
পদক্ষেপ 5
দ্রষ্টব্য - 1 : যদি কলামগুলি লক্ষ্য সারণির মতো সঠিক ক্রমে না থাকে তবে আপনি সর্বদা দ্বিতীয় পদক্ষেপটি অনুসরণ করতে পারেন এবং লক্ষ্য সারণীর মতো কলামগুলি একই ক্রমে নির্বাচন করতে পারেন
দ্রষ্টব্য - 2 - আপনার যদি পরিচয় কলাম থাকে তবে এক্সিকিউট করুন SET IDENTITY_INSERT sometableWithIdentity ON
এবং তারপরে উপরের পদক্ষেপগুলি অনুসরণ করুন এবং শেষে সম্পাদন করুনSET IDENTITY_INSERT sometableWithIdentity OFF
আপনি যদি স্থায়ীভাবে প্রচুর ডেটা স্থানান্তর করে থাকেন, অর্থাত্ কোনও টেম্প টেবিলটিকে জনবসতিপূর্ণ না করেন তবে আমি এসকিউএল সার্ভার আমদানি / রফতানি ডেটা টেবিল টু-টেবিল ম্যাপিংয়ের জন্য ব্যবহার করার পরামর্শ দেব ।
আপনার ম্যাপিংয়ে যখন টাইপ রূপান্তর এবং সম্ভাব্য মান কাটা থাকে তখন আমদানি / রফতানির সরঞ্জামটি সাধারণত সোজা এসকিউএল এর চেয়ে ভাল। সাধারণত, আপনার ম্যাপিং যত জটিল, আপনি সরাসরি এসকিউএল এর পরিবর্তে ইন্টিগ্রেশন সার্ভিসেস (এসএসআইএস) এর মতো একটি ইটিএল সরঞ্জাম ব্যবহার করছেন তত বেশি উত্পাদনশীল।
আমদানি / রফতানির সরঞ্জামটি আসলে একটি এসএসআইএস উইজার্ড এবং আপনি আপনার কাজটি ডিটিএসএক্স প্যাকেজ হিসাবে সংরক্ষণ করতে পারেন।
আমি মনে করি এই বিবৃতিটি আপনি যা চান তা করতে পারে।
INSERT INTO newTableName (SELECT column1, column2, column3 FROM oldTable);
Dim ofd As New OpenFileDialog
ofd.Filter = "*.mdb|*.MDB"
ofd.FilterIndex = (2)
ofd.FileName = "bd1.mdb"
ofd.Title = "SELECCIONE LA BASE DE DATOS ORIGEN (bd1.mdb)"
ofd.ShowDialog()
Dim conexion1 = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + ofd.FileName
Dim conn As New OdbcConnection()
conn.ConnectionString = conexion1
conn.Open()
'EN ESTE CODIGO SOLO SE AGREGAN LOS DATOS'
Dim ofd2 As New OpenFileDialog
ofd2.Filter = "*.mdb|*.MDB"
ofd2.FilterIndex = (2)
ofd2.FileName = "bd1.mdb"
ofd2.Title = "SELECCIONE LA BASE DE DATOS DESTINO (bd1.mdb)"
ofd2.ShowDialog()
Dim conexion2 = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + ofd2.FileName
Dim conn2 As New OdbcConnection()
conn2.ConnectionString = conexion2
Dim cmd2 As New OdbcCommand
Dim CADENA2 As String
CADENA2 = "INSERT INTO EXISTENCIA IN '" + ofd2.FileName + "' SELECT * FROM EXISTENCIA IN '" + ofd.FileName + "'"
cmd2.CommandText = CADENA2
cmd2.Connection = conn2
conn2.Open()
Dim dA2 As New OdbcDataAdapter
dA2.SelectCommand = cmd2
Dim midataset2 As New DataSet
dA2.Fill(midataset2, "EXISTENCIA")