ฉันจะโคลนฐานข้อมูล SQL Server บนเซิร์ฟเวอร์เดียวกันใน SQL Server 2008 Express ได้อย่างไร


272

ฉันมีระบบ MS SQL Server 2008 Express ซึ่งมีฐานข้อมูลที่ฉันต้องการ 'คัดลอกและเปลี่ยนชื่อ' (เพื่อการทดสอบ) แต่ฉันไม่รู้วิธีง่ายๆในการบรรลุเป้าหมายนี้

ฉันสังเกตเห็นว่าใน SQL Server รุ่น R2 มีตัวช่วยสร้างฐานข้อมูลการคัดลอก แต่น่าเสียดายที่ฉันไม่สามารถอัปเกรดได้

ฐานข้อมูลที่เป็นปัญหาอยู่ที่กิ๊ก ฉันพยายามกู้คืนสำเนาสำรองของฐานข้อมูลฉันต้องการคัดลอกลงในฐานข้อมูลใหม่ แต่ไม่มีโชค


2
การกู้คืนข้อมูลสำรองควรใช้งานได้ คุณช่วยให้รายละเอียดเพิ่มเติมเกี่ยวกับความล้มเหลวได้อย่างไร?
Ed Harper

7
ฉันรู้ว่าฉันทำผิดพลาดเมื่อกู้คืนจากข้อมูลสำรอง ฉันสร้าง DB ว่างใหม่ก่อนและพยายามกู้คืนการสำรองข้อมูลจากที่นั่น สิ่งที่ฉันควรทำคือเปิดกล่องโต้ตอบการคืนค่าและพิมพ์ชื่อของฐานข้อมูลใหม่ที่นั่นแทนที่จะสร้างขึ้นมาก่อน ทำสิ่งนี้โคลนฐานข้อมูลอย่างดี!
Sergio

คำตอบ:


372
  1. ติดตั้ง Microsoft SQL Management Studio ซึ่งคุณสามารถดาวน์โหลดได้ฟรีจากเว็บไซต์ของ Microsoft:

    รุ่น 2008

    Microsoft SQL Management Studio 2008 เป็นส่วนหนึ่งของSQL Server 2008 Express พร้อมบริการขั้นสูง

    รุ่น 2012

    คลิกปุ่มดาวน์โหลดและตรวจสอบENU\x64\SQLManagementStudio_x64_ENU.exe

    เวอร์ชั่น 2014

    คลิกปุ่มดาวน์โหลดและตรวจสอบ MgmtStudio64BIT\SQLManagementStudio_x64_ENU.exe

  2. เปิดStudio จัดการของ Microsoft SQL

  3. สำรองฐานข้อมูลดั้งเดิมไปยังไฟล์. BAK (db -> Task -> Backup)
  4. สร้างฐานข้อมูลเปล่าด้วยชื่อใหม่ (โคลน) หมายเหตุความคิดเห็นด้านล่างเนื่องจากเป็นตัวเลือก
  5. คลิกเพื่อโคลนฐานข้อมูลและเปิดกล่องโต้ตอบเรียกคืน (ดูภาพ) คืนค่ากล่องโต้ตอบ
  6. เลือกอุปกรณ์และเพิ่มไฟล์สำรองจากขั้นตอนที่ 3 เพิ่มไฟล์สำรอง
  7. เปลี่ยนปลายทางเพื่อทดสอบฐานข้อมูล เปลี่ยนปลายทาง
  8. เปลี่ยนตำแหน่งของไฟล์ฐานข้อมูลจะต้องแตกต่างจากต้นฉบับ คุณสามารถพิมพ์โดยตรงลงในกล่องข้อความเพียงเพิ่ม postfix (หมายเหตุ: คำสั่งซื้อมีความสำคัญเลือกช่องทำเครื่องหมายจากนั้นเปลี่ยนชื่อไฟล์) เปลี่ยนตำแหน่ง
  9. ตรวจสอบกับ REPLACE และด้วย KEEP_REPLICATION ด้วยการแทนที่

84
1. อย่าสร้างฐานข้อมูลเปล่าและกู้คืนไฟล์. bak 2. ใช้ตัวเลือก 'กู้คืนฐานข้อมูล' โดยคลิกขวาที่สาขา "ฐานข้อมูล" ของ SQL Server Management Studio และระบุชื่อฐานข้อมูลในขณะที่ให้แหล่งที่มาเพื่อกู้คืน ref: stackoverflow.com/questions/10204480/…
taynguyen

1
Microsoft SQL Management Studio - ฟรี
Tomas Kubes

4
ไม่ทำงาน - "ไม่สามารถเข้าถึงแบบเอกสิทธิ์เฉพาะบุคคลได้เนื่องจากฐานข้อมูลใช้งานอยู่"
Emanuele Ciriachi

5
ฉันต้องยกเลิกการเลือก "ใช้การสำรองข้อมูลหางก่อนบันทึก" สิ่งนี้ถูกตรวจสอบโดยค่าเริ่มต้นและส่งผลให้เกิดข้อผิดพลาด "ไม่สามารถเข้าถึงแบบเอกสิทธิ์เฉพาะบุคคลได้เนื่องจากฐานข้อมูลใช้งานอยู่"
หัวผักกาด

3
ฐานข้อมูลดั้งเดิมของฉันติดอยู่ที่ "การกู้คืน"
Divi perdomo

114

คลิกขวาที่ฐานข้อมูลในการโคลนคลิกคลิกTasks Copy Database...ทำตามตัวช่วยสร้างแล้วเสร็จ


ผมคิดว่าจะใช้ได้เฉพาะในรุ่น R2 ของ SQL Server เศร้า :-(
เซร์คิโอ

7
นี่คือวิธีการทำงานของ express: stackoverflow.com/questions/4269450/…
Th 00 mÄ s

2
สิ่งนี้จะไม่ทำงานหากคุณมีวัตถุที่เข้ารหัสในฐานข้อมูลของคุณ
cjbarth

1
ฉันจะบอกว่าประเด็นหลักคือจริง ๆ แล้วจะทำอย่างไร? สิ่งที่คุณอธิบายนั้นค่อนข้างง่าย ฉันเคยลองใช้เครื่องมือบางอย่าง (0xDBE, Visual Studio SQL Server Object Explorer) มาก่อน แต่ไม่พบคุณลักษณะดังกล่าว
David Ferenczy Rogožan

3
เป็นไปไม่ได้! งาน -> ไม่มีรายการเมนูที่จะคัดลอกฐานข้อมูล
raiserle

95

คุณสามารถลองแยกฐานข้อมูลคัดลอกไฟล์ไปยังชื่อใหม่ที่พรอมต์คำสั่งจากนั้นแนบฐานข้อมูลทั้งสอง

ใน SQL:

USE master;
GO 
EXEC sp_detach_db
    @dbname = N'OriginalDB';
GO

ที่พร้อมท์คำสั่ง (ฉันทำให้เส้นทางไฟล์ง่ายขึ้นเพื่อประโยชน์ของตัวอย่างนี้):

copy c:\OriginalDB.mdf c:\NewDB.mdf
copy c:\OriginalDB.ldf c:\NewDB.ldf

ใน SQL อีกครั้ง:

USE master;
GO
CREATE DATABASE OriginalDB
    ON (FILENAME = 'C:\OriginalDB.mdf'),
       (FILENAME = 'C:\OriginalDB.ldf')
    FOR ATTACH;
GO
CREATE DATABASE NewDB
    ON (FILENAME = 'C:\NewDB.mdf'),
       (FILENAME = 'C:\NewDB.ldf')
    FOR ATTACH;
GO

1
ที่สมบูรณ์แบบ! นี่เป็นทางออกที่ไม่ซ้ำใครที่เหมาะกับฉัน! ขอบคุณมาก!
thiagoh

9
select * from OriginalDB.sys.sysfilesเพื่อค้นหาตำแหน่งของไฟล์ DB
JohnLBevan

ใช่ฉันชอบโซลูชันนี้มากที่สุดเนื่องจากไม่ต้องการเครื่องมือพิเศษใด ๆ แต่ฉันไม่สามารถสร้าง NewDB ได้มันแจ้งไว้Permission deniedใน.mdfไฟล์ ฉันไม่ต้องการมันตอนนี้ฉันแค่ต้องการสำรองข้อมูลของฐานข้อมูลดั้งเดิมดังนั้นฉันสามารถเขียนทับฐานข้อมูลเดิมได้ในภายหลังฉันแค่อยากรู้ว่าทำไมฉันถึงได้รับข้อผิดพลาดดังกล่าว
David Ferenczy Rogožan

2
คุณไม่จำเป็นต้องแยกฐานข้อมูลดั้งเดิมออกหากคุณสามารถหยุดบริการ sql คัดลอกไฟล์ mdf และ ldf เปลี่ยนชื่อเป็นฐานข้อมูลใหม่ของคุณเริ่มบริการ sql อีกครั้งและเรียกใช้คำสั่งสร้างฐานข้อมูลล่าสุดภายใต้ต้นแบบ: USE master ; ไปสร้างฐานข้อมูล NewDB ON (FILENAME = 'C: \ NewDB.mdf'), (FILENAME = 'C: \ NewDB.ldf') สำหรับ ATTACH; GO
2560

1
+1 สำหรับวิธีที่เร็วที่สุด นอกจาก @JohnLBevan ความคิดเห็นที่ยอดเยี่ยมแล้วคุณยังสามารถใช้exec sp_helpdb @dbname='TEMPDB';
jean

30

ปรากฎว่าฉันพยายามกู้คืนจากการสำรองข้อมูลไม่ถูกต้อง

ตอนแรกฉันสร้างฐานข้อมูลใหม่แล้วพยายามกู้คืนข้อมูลสำรองที่นี่ สิ่งที่ฉันควรทำและสิ่งที่ได้ผลในท้ายที่สุดคือการนำเสนอไดอะล็อกการคืนค่าและพิมพ์ชื่อของฐานข้อมูลใหม่ในฟิลด์ปลายทาง

ดังนั้นในระยะสั้นการกู้คืนจากข้อมูลสำรองจึงเป็นการหลอกลวง

ขอบคุณสำหรับคำติชมและข้อเสนอแนะทั้งหมด


เมื่อฉันทำสิ่งนี้ไดอะล็อกจะบอกฉันว่าไฟล์อยู่ในตำแหน่งเดียวกับฐานข้อมูลที่ฉันสำรองไว้ ดังนั้นฉันจึงไม่มีความกล้าที่จะกู้คืนเพราะกลัวว่าไฟล์จะถูกเขียนทับ
Niels Brinch

2
Neils ไฟล์จะเหมือนกันตามค่าเริ่มต้นในภาพรวมที่คุณถ่าย คุณสามารถเปลี่ยนชื่อของพวกเขาเพื่อสร้างไฟล์ใหม่สำหรับฐานข้อมูลที่ตั้งชื่อใหม่
โคลิน Dabritz

PS: วิธีนี้ต้องการบริการตัวแทนของ SQL ตรวจสอบให้แน่ใจว่ามันกำลังทำงานอยู่ก่อนที่จะเริ่มการดำเนินการคัดลอก db
dvdmn

คุณได้ช่วยฉันด้วยคำตอบนี้สามครั้งแล้ว ฉันลืมเกี่ยวกับการพิมพ์ในแทนที่จะสร้างมัน + beer
Piotr Kula

สิ่งนี้และการเปลี่ยนชื่อไฟล์. mdf และ. log ในหน้าต่าง 'Files' นั้นเหมาะกับฉัน
Wollan

17

นี่คือสคริปต์ที่ฉันใช้ ค่อนข้างยุ่งยาก แต่ใช้งานได้ ทดสอบบน SQL Server 2012

DECLARE @backupPath nvarchar(400);
DECLARE @sourceDb nvarchar(50);
DECLARE @sourceDb_log nvarchar(50);
DECLARE @destDb nvarchar(50);
DECLARE @destMdf nvarchar(100);
DECLARE @destLdf nvarchar(100);
DECLARE @sqlServerDbFolder nvarchar(100);

SET @sourceDb = 'db1'
SET @sourceDb_log = @sourceDb + '_log'
SET @backupPath = 'E:\tmp\' + sourceDb + '.bak' --ATTENTION: file must already exist and SQL Server must have access to it
SET @sqlServerDbFolder = 'E:\DB SQL\MSSQL11.MSSQLSERVER\MSSQL\DATA\'
SET @destDb = 'db2'
SET @destMdf = @sqlServerDbFolder + @destDb + '.mdf'
SET @destLdf = @sqlServerDbFolder + @destDb + '_log' + '.ldf'

BACKUP DATABASE @sourceDb TO DISK = @backupPath

RESTORE DATABASE @destDb FROM DISK = @backupPath
WITH REPLACE,
   MOVE @sourceDb     TO @destMdf,
   MOVE @sourceDb_log TO @destLdf

2
ในสภาพแวดล้อมของฉันชื่อไฟล์ไม่ตรงกับชื่อ db (มาจากการกู้คืนอื่น ) ดังนั้นฉันต้องการSET @sourceDb_log = (SELECT files.name FROM sys.databases dbs INNER JOIN sys.master_files files ON dbs.database_id=files.database_id WHERE dbs.name=@sourceDb AND files.type=1)และตัวแปรที่แยกต่างหากสำหรับ @sourceDb_data ด้วยแบบสอบถามที่คล้ายกัน (แทนในfiles.type=0) HTH!
Dan Caseley

11

ไม่มีวิธีการแก้ปัญหาที่กล่าวถึงที่นี่ทำงานให้ฉัน - ฉันใช้ SQL Server Management Studio 2014

แต่ฉันต้องยกเลิกการเลือกช่องทำเครื่องหมาย "ใช้การสำรองข้อมูลหางก่อนคืนค่า" ในหน้าจอ "ตัวเลือก": ในรุ่นของฉันจะมีการตรวจสอบตามค่าเริ่มต้นและป้องกันไม่ให้การดำเนินการกู้คืนเสร็จสมบูรณ์ หลังจากยกเลิกการเลือกการดำเนินการกู้คืนจะดำเนินการต่อโดยไม่มีปัญหา

ป้อนคำอธิบายรูปภาพที่นี่


2
คำตอบนี้ช่วยชีวิตฉันไว้
Dilhan Jayathilake

2
บันทึกวันของฉันด้วย :)
ashilon

1
เมื่อไม่ทำเช่นนี้กับ SQL Server 2017 ฐานข้อมูลดั้งเดิมจะยังคงอยู่ใน "การกู้คืน ... " วิธีการแก้ปัญหาของคุณได้หลอกลวง - ขอบคุณ!
mu88

9

เมื่อใช้ MS SQL Server 2012 คุณจะต้องดำเนินการ 3 ขั้นตอนพื้นฐาน:

  1. ก่อนอื่นให้สร้าง.sqlไฟล์ที่มีเพียงโครงสร้างของฐานข้อมูลต้นทาง

    • คลิกขวาที่ฐานข้อมูลต้นทางแล้วเลือกงานจากนั้นสร้างสคริปต์
    • ทำตามตัวช่วยสร้างและบันทึก.sqlไฟล์ไว้ในเครื่อง
  2. ขั้นที่สองแทนที่ DB ต้นทางด้วยปลายทางใน.sqlไฟล์

    • คลิกขวาที่ไฟล์ปลายทางเลือกQuery ใหม่และCtrl-Hหรือ ( แก้ไข - ค้นหาและแทนที่ - แทนที่ด่วน )
  3. สุดท้ายเติมด้วยข้อมูล

    • คลิกขวาที่ฐานข้อมูลปลายทางจากนั้นเลือกงานและนำเข้าข้อมูล
    • ดร็อปดาวน์แหล่งข้อมูลตั้งค่าเป็น " .net framework data provider สำหรับ SQL server " + ตั้งค่าฟิลด์ข้อความสตริงการเชื่อมต่อภายใต้ DATA ex:Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15
    • ทำเช่นเดียวกันกับปลายทาง
    • ทำเครื่องหมายตารางที่คุณต้องการถ่ายโอนหรือทำเครื่องหมายในช่องที่นอกเหนือจาก "source: ... " เพื่อตรวจสอบทั้งหมด

คุณทำเสร็จแล้ว


โดยวิธีการที่ฉันเดานำเข้าข้อมูลสามารถสร้างตารางหากไม่ได้อยู่ในตารางปลายทาง .. วิธีที่ง่าย +1
Khurram Ishaque

6

ใน SQL Server 2008 R2 สำรองฐานข้อมูลเป็นไฟล์ลงในโฟลเดอร์ จากนั้นเลือกตัวเลือกการคืนค่าที่ปรากฏในโฟลเดอร์ "ฐานข้อมูล" ในตัวช่วยสร้างให้ป้อนชื่อใหม่ที่คุณต้องการในฐานข้อมูลเป้าหมาย และเลือกกู้คืนไฟล์ frrom และใช้ไฟล์ที่คุณเพิ่งสร้างขึ้น ฉัน jsut ทำและมันเร็วมาก (ดีบีของฉันเล็ก แต่ก็ยัง) ปาโบล


4

หากฐานข้อมูลไม่ใหญ่มากคุณอาจดูคำสั่ง 'ฐานข้อมูลสคริปต์' ใน SQL Server Management Studio Express ซึ่งอยู่ในเมนูบริบทปิดรายการฐานข้อมูลใน Explorer เอง

คุณสามารถเลือกสคริปต์ทั้งหมด คุณต้องการวัตถุและข้อมูลแน่นอน จากนั้นคุณจะบันทึกสคริปต์ทั้งหมดเป็นไฟล์เดียว จากนั้นคุณสามารถใช้ไฟล์นั้นเพื่อสร้างฐานข้อมูลอีกครั้ง เพียงตรวจสอบให้แน่ใจว่าUSEคำสั่งที่ด้านบนถูกตั้งค่าเป็นฐานข้อมูลที่เหมาะสม


1
ขอบคุณฐานข้อมูลมีขนาดใหญ่มาก แต่ (ประมาณกิ๊ก) ดังนั้นฉันคิดว่าสิ่งเลวร้ายที่อาจจะเกิดขึ้น :-)
เซร์คิโอ

2
ขวา; นั่นไม่ใช่วิธีที่ดีที่สุดแล้ว แต่คุณสามารถใช้ฐานข้อมูลสคริปต์เพื่อสร้างโครงสร้างในฐานข้อมูลใหม่จากนั้นนำเข้า / ส่งออกเพื่อย้ายข้อมูล เพียงให้แน่ใจว่าคุณทำฐานข้อมูลสคริปต์ก่อน นำเข้า / ส่งออกจะสร้างตารางหากไม่มีอยู่และคุณอาจไม่ชอบวิธีที่มันทำ
Andrew Barber

4

วิธีการแก้ปัญหาบนพื้นฐานของความคิดเห็นนี้: https://stackoverflow.com/a/22409447/2399045 เพียงแค่ตั้งค่า: ชื่อ DB, โฟลเดอร์ temp, โฟลเดอร์ db ไฟล์ และหลังจากรันคุณจะมีสำเนาของ DB พร้อมชื่อในรูปแบบ "sourceDBName_yyyy-mm-dd"

-- Settings --
-- New DB name will have name = sourceDB_yyyy-mm-dd
declare @sourceDbName nvarchar(50) = 'MyDbName';
declare @tmpFolder nvarchar(50) = 'C:\Temp\'
declare @sqlServerDbFolder nvarchar(100) = 'C:\Databases\'

--  Execution --
declare @sourceDbFile nvarchar(50);
declare @sourceDbFileLog nvarchar(50);
declare @destinationDbName nvarchar(50) = @sourceDbName + '_' + (select convert(varchar(10),getdate(), 121))
declare @backupPath nvarchar(400) = @tmpFolder + @destinationDbName + '.bak'
declare @destMdf nvarchar(100) = @sqlServerDbFolder + @destinationDbName + '.mdf'
declare @destLdf nvarchar(100) = @sqlServerDbFolder + @destinationDbName + '_log' + '.ldf'

SET @sourceDbFile = (SELECT top 1 files.name 
                    FROM sys.databases dbs 
                    INNER JOIN sys.master_files files 
                        ON dbs.database_id = files.database_id 
                    WHERE dbs.name = @sourceDbName
                        AND files.[type] = 0)

SET @sourceDbFileLog = (SELECT top 1 files.name 
                    FROM sys.databases dbs 
                    INNER JOIN sys.master_files files 
                        ON dbs.database_id = files.database_id 
                    WHERE dbs.name = @sourceDbName
                        AND files.[type] = 1)

BACKUP DATABASE @sourceDbName TO DISK = @backupPath

RESTORE DATABASE @destinationDbName FROM DISK = @backupPath
WITH REPLACE,
   MOVE @sourceDbFile     TO @destMdf,
   MOVE @sourceDbFileLog  TO @destLdf

3

สคริปต์ขึ้นอยู่กับคำตอบของโจ ( แยก, คัดลอกไฟล์, แนบทั้งคู่ )

  1. เรียกใช้ Managment Studio เป็นบัญชีผู้ดูแลระบบ

ไม่จำเป็น แต่อาจเข้าถึงถูกปฏิเสธข้อผิดพลาดในการดำเนินการ

  1. กำหนดค่าเซิร์ฟเวอร์ sql สำหรับเรียกใช้งาน xp_cmdshel
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
  1. รันสคริปต์ แต่พิมพ์ชื่อ db ของคุณใน@dbNameและ@copyDBNameตัวแปรก่อน
USE master;
GO 

DECLARE @dbName NVARCHAR(255) = 'Products'
DECLARE @copyDBName NVARCHAR(255) = 'Products_branch'

-- get DB files
CREATE TABLE ##DBFileNames([FileName] NVARCHAR(255))
EXEC('
    INSERT INTO ##DBFileNames([FileName])
    SELECT [filename] FROM ' + @dbName + '.sys.sysfiles')

-- drop connections
EXEC('ALTER DATABASE ' + @dbName + ' SET OFFLINE WITH ROLLBACK IMMEDIATE')

EXEC('ALTER DATABASE ' + @dbName + ' SET SINGLE_USER')

-- detach
EXEC('EXEC sp_detach_db @dbname = ''' + @dbName + '''')

-- copy files
DECLARE @filename NVARCHAR(255), @path NVARCHAR(255), @ext NVARCHAR(255), @copyFileName NVARCHAR(255), @command NVARCHAR(MAX) = ''
DECLARE 
    @oldAttachCommand NVARCHAR(MAX) = 
        'CREATE DATABASE ' + @dbName + ' ON ', 
    @newAttachCommand NVARCHAR(MAX) = 
        'CREATE DATABASE ' + @copyDBName + ' ON '

DECLARE curs CURSOR FOR 
SELECT [filename] FROM ##DBFileNames
OPEN curs  
FETCH NEXT FROM curs INTO @filename
WHILE @@FETCH_STATUS = 0  
BEGIN
    SET @path = REVERSE(RIGHT(REVERSE(@filename),(LEN(@filename)-CHARINDEX('\', REVERSE(@filename),1))+1))
    SET @ext = RIGHT(@filename,4)
    SET @copyFileName = @path + @copyDBName + @ext

    SET @command = 'EXEC master..xp_cmdshell ''COPY "' + @filename + '" "' + @copyFileName + '"'''
    PRINT @command
    EXEC(@command);

    SET @oldAttachCommand = @oldAttachCommand + '(FILENAME = "' + @filename + '"),'
    SET @newAttachCommand = @newAttachCommand + '(FILENAME = "' + @copyFileName + '"),'

    FETCH NEXT FROM curs INTO @filename
END
CLOSE curs 
DEALLOCATE curs

-- attach
SET @oldAttachCommand = LEFT(@oldAttachCommand, LEN(@oldAttachCommand) - 1) + ' FOR ATTACH'
SET @newAttachCommand = LEFT(@newAttachCommand, LEN(@newAttachCommand) - 1) + ' FOR ATTACH'

-- attach old db
PRINT @oldAttachCommand
EXEC(@oldAttachCommand)

-- attach copy db
PRINT @newAttachCommand
EXEC(@newAttachCommand)

DROP TABLE ##DBFileNames

3

คุณสามารถสร้างฐานข้อมูลใหม่จากนั้นไปที่งานนำเข้าข้อมูลและนำเข้าข้อมูลทั้งหมดจากฐานข้อมูลที่คุณต้องการทำซ้ำไปยังฐานข้อมูลที่คุณเพิ่งสร้างขึ้น


2

อีกวิธีหนึ่งที่จะหลอกลวงโดยใช้ตัวช่วยสร้างการนำเข้า / ส่งออกสร้างฐานข้อมูลเปล่าก่อนจากนั้นเลือกต้นทางซึ่งเป็นเซิร์ฟเวอร์ของคุณที่มีฐานข้อมูลต้นทางจากนั้นในปลายทางเลือกเซิร์ฟเวอร์เดียวกันกับฐานข้อมูลปลายทาง (ใช้ฐานข้อมูลเปล่า คุณสร้างในตอนแรก) จากนั้นกดปุ่มเสร็จ

มันจะสร้างตารางทั้งหมดและถ่ายโอนข้อมูลทั้งหมดไปยังฐานข้อมูลใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.