????????????
?????????????Ц????????????“??????11??16???????MSSQL ON Linux?汾??????????????”??
????“??????????????????????д??????Happy Birthday to MSSQL On Linux????”????λ???????????????
????“???????????????о?????MSSQL On Linux???????????????Windows?????????????”??????????????????????ɡ?
????Ubuntu 16.04?°??SQL Server for Linux http://www.linuxidc.com/Linux/2016-11/137328.htm
??????Windows???SQL Server?????Linux http://www.linuxidc.com/Linux/2016-12/138261.htm
???????????
?????????????MSSQL On Linux?????????????????????±???????????????????????????????ò????????鯔???????????????????????????????????????????????????
????????
???????????????????????????table1 => ???????????? => ??????table2 => ??????????? => ??????table3 => ?????????????????
USE master
GO
--If not exists?? create testing database
IF DB_ID('TestDB') IS NULL
CREATE DATABASE TestDB;
GO
--create the 1st table
USE TestDB
GO
IF OBJECT_ID('dbo.Table1'?? 'U') IS NOT NULL
DROP TABLE dbo.Table1
GO
CREATE TABLE dbo.Table1(
RowID INT
)
GO
--make a full backup
BACKUP DATABASE [TestDB]
TO  DISK = N'C:varoptmssqldataTestDB_full.bak'
WITH NOFORMAT?? NOINIT??
NAME = N'TestDB-Full Database Backup'?? SKIP??
NOREWIND?? NOUNLOAD??  STATS = 10
GO
--create the second table
IF OBJECT_ID('dbo.Table2'?? 'U') IS NOT NULL
DROP TABLE dbo.Table2
GO
CREATE TABLE dbo.Table2(
RowID INT
)
GO
--take a diff backup
BACKUP DATABASE [TestDB]
TO  DISK = N'C:varoptmssqldataTestDB_diff.bak'
WITH  DIFFERENTIAL ?? NOFORMAT?? NOINIT??
NAME = N'TestDB-Differential Database Backup'?? SKIP??
NOREWIND?? NOUNLOAD??  STATS = 10
GO
--create the third table
IF OBJECT_ID('dbo.Table3'?? 'U') IS NOT NULL
DROP TABLE dbo.Table3
GO
CREATE TABLE dbo.Table3(
RowID INT
)
GO
--take transaction log backup
BACKUP LOG [TestDB]
TO  DISK = N'C:varoptmssqldataTestDB_log.bak'
WITH NOFORMAT?? NOINIT??
NAME = N'TestDB-Transaction Log  Backup'?? SKIP??
NOREWIND?? NOUNLOAD??  STATS = 10
GO
?????????????Linux???е?λ???
????[root@localhost ~]# ls /var/opt/mssql/data/ | grep bak
????TestDB_diff.bak
????TestDB_full.bak
????TestDB_log.bak
???????
??????????????????????????????????????????????????????????????·??????????????? => ?????????????????? => ???????????? => ????????????????? => ????????????????????????????????????????????????
--==============next is for restore operation
USE master
GO
--drop database if exists for testing
IF DB_ID('TestDB') IS NOT NULL
DROP DATABASE TestDB;
GO
--restore full database backup
RESTORE DATABASE [TestDB]
FROM  DISK = 'C:varoptmssqldataTestDB_full.bak'  WITH  FILE = 1??
MOVE N'TestDB' TO N'C:varoptmssqldataTestDB.mdf'??
MOVE N'TestDB_log' TO N'C:varoptmssqldataTestDB_log.ldf'??
NORECOVERY??  NOUNLOAD??  REPLACE??  STATS = 10
GO
--restore the diff backup
RESTORE DATABASE [TestDB]
FROM  DISK = N'C:varoptmssqldataTestDB_diff.bak' WITH  FILE = 1
??  NORECOVERY??  NOUNLOAD??  STATS = 10
GO
--restore the transaction log backup
RESTORE LOG [TestDB]
FROM  DISK = N'C:varoptmssqldataTestDB_log.bak' WITH  FILE = 1
??  NOUNLOAD??  STATS = 10
GO
?????????????????????????????????TestDB?У?????????????

????д???
???????????????????????MSSQL On Linux??MSSQL On Windows????????????????£????????????????????????????????????????????????????