首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SQL CREATE TABLE 語法錯誤:多餘逗號導致建表失敗

     編輯:程式設計綜合問答

錯誤 SQL 片段

CREATE TABLE gbook (
    ...
    [userid] [int] NULL,   -- 這裡多了一個逗號
) 
CONSTRAINT [PK_gbook] PRIMARY KEY CLUSTERED ([id] ASC);

錯誤原因

SQL Server (T-SQL) 規定:欄位定義清單中最後一個欄位後不能有逗號。userid 後的逗號導致語法解析失敗。

修正後語法

CREATE TABLE gbook (
    [id] INT IDENTITY(1,1) NOT NULL,
    [title] NVARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL,
    [name] NVARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL,
    [time] DATETIME NULL,
    [content] NVARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL,
    [reptitle] NVARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL,
    [admin] NVARCHAR(50) COLLATE Chinese_PRC_CI_AS NULL,
    [reptime] DATETIME NULL,
    [repcontent] NVARCHAR(MAX) COLLATE Chinese_PRC_CI_AS NULL,
    [classid] INT NULL,
    [userid] INT NULL
    -- 移除逗號
)
CONSTRAINT [PK_gbook] PRIMARY KEY CLUSTERED ([id] ASC)
WITH (PAD_INDEX=OFF, STATISTICS_NORECOMPUTE=OFF, IGNORE_DUP_KEY=OFF, ALLOW_ROW_LOCKS=ON, ALLOW_PAGE_LOCKS=ON)
ON [PRIMARY];

最佳實務建議

  • 使用 SSMS 設計師圖形化建表,自動生成正確腳本。
  • 習慣在每行欄位定義結尾加逗號,但最後一行除外(或使用支援尾隨逗號的新版本)。
  • 主鍵約束可直接在欄位定義時指定:[id] INT IDENTITY(1,1) PRIMARY KEY,簡化語法。

總結

建表失敗多為細節語法錯誤(多餘逗號、保留字衝突、資料型別拼寫)。善用工具生成腳本並逐行核對,可避免 90% 此類問題。

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