首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 建立資料庫語法陷阱:FILEGROUP 之間必須加逗號

     編輯:關於SqlServer

錯誤現象

在 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 時請養成「逐行對照語法圖、逗號不漏」的習慣,避免浪費時間在低級語法錯誤上。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved