创建表时关键字'primary'附近的错误语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建表时关键字'primary'附近的错误语法相关的知识,希望对你有一定的参考价值。

请在下面的SQL Server中创建表时帮助您解决此错误?

create table employees (
    employeeid int identity(1,1) not null,
    name varchar(150) null,

    constraint pk_employees 
         primary key clustered (employeeid asc)
                     with (statistics_norecompute = off, ignore_dup_key = off) on primary 
) on primary 

我收到此错误:

Msg 156,第15级,状态1,第2448行关键字'primary'附近的语法不正确]

答案

那行得通:

create table employees (
                           employeeid int identity(1,1) not null,
                           name varchar(150) null,

                           constraint pk_employees
                               primary key clustered (employeeid asc)
                                   with (statistics_norecompute = off, ignore_dup_key = off) on [primary]
) on [primary]

primary是关键字。您尝试指定文件组的名称,并且该文件组必须用引号引起来。

另一答案

您具有多个文件组。在MSSQL Server中创建数据库时,将在多个位置,目录或磁盘中创建存储。可以命名每个文件组。 PRIMARY文件组是默认的文件组,始终创建该默认文件组,因此您提供的SQL在PRIMARY文件组上创建表。

请参考链接click here for link

您可以创建不带文件组名称的表:

  CREATE TABLE EMPLOYEES (
      EMPLOYEEID INT IDENTITY(1,1) NOT NULL,
      NAME VARCHAR(150) NULL,

      CONSTRAINT PK_EMPLOYEES 
           PRIMARY KEY CLUSTERED (EMPLOYEEID ASC)
                       WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) 
  )

如果要提及文件组名称:-

  CREATE TABLE EMPLOYEES (
      EMPLOYEEID INT IDENTITY(1,1) NOT NULL,
      NAME VARCHAR(150) NULL,

      CONSTRAINT PK_EMPLOYEES 
           PRIMARY KEY CLUSTERED (EMPLOYEEID ASC)
                       WITH (STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
  ) ON [PRIMARY]

以上是关于创建表时关键字'primary'附近的错误语法的主要内容,如果未能解决你的问题,请参考以下文章

PRIMARY KEY (`id`) USING BTREE啥意思

ERROR 1062 (23000): Duplicate entry '0' for key 'PRIMARY'

MySQL - 创建表时一起使用“PRIMARY KEY”、“UNIQUE KEY”和“KEY”的含义

Duplicate entry 'xxx' for key 'PRIMARY'

(1062,“重复输入'0'用于键'PRIMARY'”)

Duplicate entry '...' for key 'PRIMARY