在 CREATE DATABASE 陳述式中定義多個檔案群組或記錄檔時,若忘記在每個檔案規格括號之間加上逗號,查詢分析器會報語法錯誤,錯誤訊息往往指向後續關鍵字,導致除錯困難。
CREATE DATABASE test2 ON PRIMARY
(
NAME = 'test2DB_data',
FILENAME = 'e:\test\test2DB_data.mdf',
SIZE = 10MB,
MAXSIZE = 34MB,
FILEGROWTH = 2
) -- 這裡缺少逗號!
(
NAME = 'test2DB_data2',
FILENAME = 'e:\test\test2DB_data2.ndf',
SIZE = 3MB,
MAXSIZE = 34MB,
FILEGROWTH = 2
)
LOG ON
(
NAME = 'test2DB_log',
FILENAME = 'e:\test\test2DB_log.ldf',
SIZE = 2MB,
MAXSIZE = 24MB,
FILEGROWTH = 2
) -- 這裡也缺少逗號!
(
NAME = 'test2DB_log2',
FILENAME = 'e:\test\test2DB_log2.ldf',
SIZE = 2MB,
MAXSIZE = 24MB,
FILEGROWTH = 3
);
CREATE DATABASE test2 ON PRIMARY
(
NAME = 'test2DB_data',
FILENAME = 'e:\test\test2DB_data.mdf',
SIZE = 10MB,
MAXSIZE = 34MB,
FILEGROWTH = 2
), -- ★ 這裡必須有逗號
(
NAME = 'test2DB_data2',
FILENAME = 'e:\test\test2DB_data2.ndf',
SIZE = 3MB,
MAXSIZE = 34MB,
FILEGROWTH = 2
)
LOG ON
(
NAME = 'test2DB_log',
FILENAME = 'e:\test\test2DB_log.ldf',
SIZE = 2MB,
MAXSIZE = 24MB,
FILEGROWTH = 2
), -- ★ 這裡也必須有逗號
(
NAME = 'test2DB_log2',
FILENAME = 'e:\test\test2DB_log2.ldf',
SIZE = 2MB,
MAXSIZE = 24MB,
FILEGROWTH = 3
);
ON PRIMARY 後的每個檔案規格括號 `()` 之間需以逗號分隔。LOG ON 後的每個記錄檔規格括號 `()` 之間同樣需逗號分隔。SQL Server 對標點符號極度敏感,撰寫 DDL 時請養成「逐行對照語法圖、逗號不漏」的習慣,避免浪費時間在低級語法錯誤上。