CREATE DATABASE [資料庫名稱]
ON
( NAME = [邏輯名稱],
FILENAME = '[實體路徑]',
SIZE = 10MB,
MAXSIZE = 100MB,
FILEGROWTH = 10MB )
LOG ON
( NAME = [記錄檔邏輯名稱],
FILENAME = '[記錄檔實體路徑]',
SIZE = 5MB,
MAXSIZE = 50MB,
FILEGROWTH = 5MB );
❌ 不可以用一條 CREATE DATABASE 建立多個資料庫
SQL Server 的 CREATE DATABASE:
一次只能建立「一個」資料庫。
想建立多個資料庫,要各自寫多條指令:
CREATE DATABASE DB1;
GO
CREATE DATABASE DB2;
GO
建議 原因
每個檔案要用清楚的邏輯名稱 SQL Server 操作依賴邏輯名稱
路徑與檔名要分開資料與記錄檔 方便備份與效能分散
使用統一命名規則 如 [資料庫]_[filegroup]_[index],便於維運
-- 合理命名方式
CREATE DATABASE SalesDB
ON PRIMARY
( NAME = SalesDB_Data,
FILENAME = 'D:\DB\SalesDB.mdf'),
FILEGROUP FG1
( NAME = SalesDB_FG1,
FILENAME = 'D:\DB\SalesDB_FG1.ndf')
LOG ON
( NAME = SalesDB_Log,
FILENAME = 'D:\DBLog\SalesDB_Log.ldf'
);
這是老師出的題目,如果是用常用的寫法就會是又長又臭的,不容易Debug
-- 2025/04/29-23:10 建立含3個檔案群組與2個Log檔的TestDB
CREATE DATABASE TestDB
ON PRIMARY
-- PRIMARY Filegroup (2 files)
( NAME = TestDB_Pri1, FILENAME = 'D:\DataBase\TestDB_Pri1.mdf', SIZE = 30MB, MAXSIZE = 2048MB, FILEGROWTH = 30%),
( NAME = TestDB_Pri2, FILENAME = 'D:\DataBase\TestDB_Pri2.ndf', SIZE = 30MB, MAXSIZE = 2048MB, FILEGROWTH = 30%),
-- Filegroup FG1 (2 files)
FILEGROUP FG1
( NAME = FG1_1, FILENAME = 'D:\DataBase\FG1_1.ndf', SIZE = 30MB, MAXSIZE = 2048MB, FILEGROWTH = 30%),
( NAME = FG1_2, FILENAME = 'D:\DataBase\FG1_2.ndf', SIZE = 30MB, MAXSIZE = 2048MB, FILEGROWTH = 30%),
-- Filegroup FG2 (2 files)
FILEGROUP FG2
( NAME = FG2_1, FILENAME = 'D:\DataBase\FG2_1.ndf', SIZE = 30MB, MAXSIZE = 2048MB, FILEGROWTH = 30%),
( NAME = FG2_2, FILENAME = 'D:\DataBase\FG2_2.ndf', SIZE = 30MB, MAXSIZE = 2048MB, FILEGROWTH = 30%)
-- 記錄檔區段 (2 log files)
LOG ON
( NAME = Log1, FILENAME = 'D:\DBLog\Log1.ldf', SIZE = 10MB, MAXSIZE = 2048MB, FILEGROWTH = 10MB),
( NAME = Log2, FILENAME = 'D:\DBLog\Log2.ldf', SIZE = 10MB, MAXSIZE = 2048MB, FILEGROWTH = 10MB)
GO