ฉันมีตาราง ABC ในฐานข้อมูล DB ฉันต้องการสร้างสำเนาของ ABC ที่มีชื่อ ABC_1, ABC_2, ABC_3 ในฐานข้อมูลเดียวกัน ฉันจะทำได้อย่างไรโดยใช้ Management Studio (ควรเป็น) หรือแบบสอบถาม SQL
สำหรับ SQL Server 2008 R2
ฉันมีตาราง ABC ในฐานข้อมูล DB ฉันต้องการสร้างสำเนาของ ABC ที่มีชื่อ ABC_1, ABC_2, ABC_3 ในฐานข้อมูลเดียวกัน ฉันจะทำได้อย่างไรโดยใช้ Management Studio (ควรเป็น) หรือแบบสอบถาม SQL
สำหรับ SQL Server 2008 R2
คำตอบ:
ใช้SELECT ... INTO
:
SELECT *
INTO ABC_1
FROM ABC;
สิ่งนี้จะสร้างตารางใหม่ABC_1
ที่มีโครงสร้างคอลัมน์เหมือนกันABC
และมีข้อมูลเดียวกัน ข้อ จำกัด (เช่นคีย์ค่าเริ่มต้น) อย่างไรก็ตาม - ไม่ได้คัดลอก
คุณสามารถเรียกใช้แบบสอบถามนี้ได้หลายครั้งโดยใช้ชื่อตารางที่แตกต่างกันในแต่ละครั้ง
หากคุณไม่จำเป็นต้องคัดลอกข้อมูลเพียงสร้างตารางว่างใหม่ที่มีโครงสร้างคอลัมน์เดียวกันให้เพิ่มส่วนWHERE
คำสั่งด้วยนิพจน์ที่เป็นเท็จ:
SELECT *
INTO ABC_1
FROM ABC
WHERE 1 <> 1;
SELECT TOP(0) *
สะอาดกว่าWHERE
วิธีการแจ้งเท็จเสมอ
ใน SSMS ขยายฐานข้อมูลของคุณในวัตถุ Explorerไปที่ตารางให้คลิกขวาบนโต๊ะที่คุณสนใจและเลือกสคริปต์ในฐานะที่เป็นตาราง , สร้างการ , แบบสอบถาม Editor หน้าต่างใหม่ ทำการค้นหาและแทนที่ ( CTRL + H ) เพื่อเปลี่ยนชื่อตาราง (เช่นใส่ABC
ในฟิลด์Find WhatและABC_1
ในช่องแทนที่ด้วยจากนั้นคลิกตกลง )
คำตอบอื่น ๆ ที่แสดงวิธีการทำโดย SQL ก็ใช้ได้ดีเช่นกัน แต่ความแตกต่างของวิธีนี้คือคุณจะได้รับดัชนีข้อ จำกัด และทริกเกอร์ด้วย
หากคุณต้องการรวมข้อมูลหลังจากสร้างตารางนี้แล้วให้เรียกใช้สคริปต์ด้านล่างเพื่อคัดลอกข้อมูลทั้งหมดจาก ABC (เก็บค่า ID เดียวกันหากคุณมีฟิลด์ข้อมูลประจำตัว):
set identity_insert ABC_1 on
insert into ABC_1 (column1, column2) select column1, column2 from ABC
set identity_insert ABC_1 off
IDENTITY_INSERT
เป็นเปิดเพื่ออนุญาตให้ตั้งคอลัมน์ข้อมูลประจำตัว "ด้วยตนเอง" คุณผสมลำดับในตัวอย่าง นอกจากนี้คุณต้องแสดงรายการคอลัมน์ของคุณด้วย
หากคุณต้องการทำซ้ำตารางโดยมีข้อ จำกัด และคีย์ทั้งหมดให้ทำตามขั้นตอนด้านล่างนี้:
จากนั้นสำหรับการคัดลอกข้อมูลให้รันสคริปต์ด้านล่างนี้:
SET IDENTITY_INSERT DuplicateTable ON
INSERT Into DuplicateTable ([Column1], [Column2], [Column3], [Column4],... )
SELECT [Column1], [Column2], [Column3], [Column4],... FROM MainTable
SET IDENTITY_INSERT DuplicateTable OFF
ตัวเลือกที่ 1
select *
into ABC_1
from ABC;
ตัวเลือกที่ 2: ใช้ SSIS นั่นคือคลิกขวาที่ฐานข้อมูลใน object explorer> งานทั้งหมด> ส่งออกข้อมูล
นี่เป็นอีกทางเลือกหนึ่ง:
select top 0 * into <new_table> from <original_table>
ใช้ sql server manegement studio หรือ netcat และจะง่ายต่อการจัดการ sql
คุณต้องเขียน SSIS เพื่อคัดลอกตารางและข้อมูลข้อ จำกัด และทริกเกอร์ เรามีซอฟต์แวร์ที่เรียกว่า Kal Admin โดย kalrom Systems ในองค์กรของเราซึ่งมีเวอร์ชันฟรีสำหรับการดาวน์โหลด (ฉันคิดว่าคุณลักษณะตารางคัดลอกเป็นทางเลือก)