Sql 错误消息156:关键字“Order”附近的语法不正确

Sql 错误消息156:关键字“Order”附近的语法不正确,sql,sql-server,tsql,ddl,create-table,Sql,Sql Server,Tsql,Ddl,Create Table,Msg 156,15级,状态1,第46行 关键字“Order”附近的语法不正确。 Msg 156,第15级,状态1,第67行 关键字“Order”附近的语法不正确 代码无法处理,不确定原因。在大多数RDBMS中,Order是一个保留字。如果要将其用作表名或列名,则需要用方括号将其括起来;但更好的是,避免使用保留名称。在这里,您可以使用订单代替 另一个问题是,您有两个名为CUSTOMERAK1的约束。我认为第二个事件应该被命名为SuppliersAK1 此外,表Employee必须在引用它的表Or

Msg 156,15级,状态1,第46行 关键字“Order”附近的语法不正确。 Msg 156,第15级,状态1,第67行 关键字“Order”附近的语法不正确

代码无法处理,不确定原因。

在大多数RDBMS中,Order是一个保留字。如果要将其用作表名或列名,则需要用方括号将其括起来;但更好的是,避免使用保留名称。在这里,您可以使用订单代替

另一个问题是,您有两个名为CUSTOMERAK1的约束。我认为第二个事件应该被命名为SuppliersAK1

此外,表Employee必须在引用它的表Orders之前声明


有了这些更改,.

问题编辑器中有一个代码格式选项{},请使用它。请实际提问。。。不仅仅是转储代码和错误。order是一个保留关键字,您还需要引用它order有关命名约定的另一个注意事项。这两方面都有强烈的感情,但是无论你用单数还是复数形式命名你的表格,你都应该在内部保持一致。谢谢你,它成功运行了!再次感谢并感谢所有帮助我的人!
CREATE TABLE Store(
StoreID int NOT NULL UNIQUE,
      StoreName  varchar NOT NULL,
ManagerFirstName varchar NOT NULL,
ManagerLastName varchar NOT NULL,
Phone int NOT NULL,
      Email varchar NOT NULL
    CONSTRAINT StorePK PRIMARY KEY (StoreID),
CONSTRAINT StoreAK1 UNIQUE(Email)
);

CREATE TABLE Product(
ProductID int NOT NULL UNIQUE,
    ProductName varchar NOT NULL,
    ProductType varchar NOT NULL,
    ListPrice  money NOT NULL,
    Size    int NOT NULL
    CONSTRAINT ProductPK PRIMARY KEY (ProductID)
);
CREATE TABLE Customer(
CustomerID int NOT NULL UNIQUE,
      FirstName  varchar NOT NULL,
LastName varchar NOT NULL,
      Email varchar NOT NULL,
      Phone int NOT NULL,
      Address varchar NOT NULL

CONSTRAINT CUSTOMERPK PRIMARY KEY (CustomerID),
CONSTRAINT CUSTOMERAK1 UNIQUE(Email)
);


CREATE TABLE Suppliers(
SupplierID int NOT NULL UNIQUE,
      CompanyName varchar NOT NULL,
FirstName  varchar NOT NULL,
LastName varchar NOT NULL,
      Phone int NOT NULL,
      Email varchar NOT NULL,

CONSTRAINT SuppliersPK PRIMARY KEY (SupplierID),
CONSTRAINT CUSTOMERAK1 UNIQUE(Email)
);


CREATE TABLE Order (
OrderID int NOT NULL UNIQUE,
CustomerID int NOT NULL UNIQUE,
EmployeeID int NOT NULL UNIQUE,
OrderDate DATE NOT NULL,
TotalCost money NOT NULL
   CONSTRAINT OrderPK PRIMARY KEY (OrderID,CustomerID,EmployeeID),
         CONSTRAINT OrderFK FOREIGN KEY (CustomerID)
   REFERENCES Customer(CustomerID),
   CONSTRAINT OrderFK1 FOREIGN KEY (EmployeeID)
   REFERENCES Employee(EmployeeID)
);

CREATE TABLE OrderLine(
OrderID int NOT NULL UNIQUE,
ProductID int NOT NULL UNIQUE,
LineNumber int NOT NULL,
Quantity int NOT NULL,
UnitPrice money NOT NULL,
ExtenderPrice money NOT NULL
CONSTRAINT OrderLinePK PRIMARY KEY (OrderID,ProductID),
    CONSTRAINT OrderLineFK FOREIGN KEY (OrderID)
REFERENCES Order (OrderID),
CONSTRAINT OrderLineFK1 FOREIGN KEY (ProductID)
REFERENCES Product(ProductID)
);

CREATE TABLE Employee(
EmployeeID int NOT NULL UNIQUE,
FirstName  varchar NOT NULL,
LastName varchar NOT NULL,
StoreID int NOT NULL UNIQUE,
HireDate DATE NOT NULL,
Phone int NOT NULL,
CONSTRAINT EmployeePK PRIMARY KEY (EmployeeID),
CONSTRAINT EmployeeFK FOREIGN KEY (StoreID)
REFERENCES Store(StoreID)


);
CREATE TABLE Inventory(
InventoryID int NOT NULL UNIQUE,
    ProductID int NOT NULL UNIQUE,
    StoreID int NOT NULL UNIQUE,
    QuantityOnHand int NOT NULL
        CONSTRAINT InventoryPK PRIMARY KEY (InventoryID),
        CONSTRAINT InventoryFK FOREIGN KEY (ProductID)
        REFERENCES Product(ProductID),
        CONSTRAINT InventoryFK1 FOREIGN KEY(StoreID)
        REFERENCES Store(StoreID)
);
CREATE TABLE Quotes(
SupplierID int NOT NULL UNIQUE,
ProductID int NOT NULL UNIQUE,
    Quote money NOT NULL,
    QuoteDate DATE NOT NULL
        CONSTRAINT QuotesPK PRIMARY KEY (SupplierID,ProductID)
        CONSTRAINT QuotesFK FOREIGN KEY (SupplierID)
        REFERENCES Suppliers(SupplierID),
        CONSTRAINT QuotesFK1 FOREIGN KEY (ProductID)
        REFERENCES Product(ProductID)
);`