首页 > 解决方案 > 我收到语法错误,不知道如何修复它们

问题描述

我收到一个错误

',' 附近的语法不正确

并且不知道如何解决它。

我尝试重写查询,引用旧代码,但似乎没有任何效果。

USE RewriteExam
GO

IF EXISTS(SELECT * FROM sys.objects
          WHERE object_id = OBJECT_ID('dbo.Vendors')
            AND type IN ('U'))
BEGIN
    PRINT 'Vendors table already exists, dropping it now!'
    DROP TABLE Vendors
END
GO

PRINT 'Creating the "Vendors" Table'

CREATE TABLE dbo.Vendors 
(
    VendorID INT PRIMARY KEY, 
    VendorName VARCHAR(45) NOT NULL,
    VendorAddress VARCHAR(45) NULL,
    VendorCity VARCHAR(45) NOT NULL,
    VendorState VARCHAR(45) NOT NULL,
    VendorZipCode VARCHAR(45) NOT NULL,
    VendorPhone VARCHAR(45) NULL,
    VendorContactLName VARCHAR(7) NULL,
    VendorContactFName VARCHAR(14) NULL,
    AcountNo INT NOT NULL,
    ModifiedDate SMALLDATETIME NOT NULL,
    AccountNo INT FOREIGN KEY,
    CONSTRAINT PK_Vendors_VendorID 
         PRIMARY KEY (VendorID)
    --REFERENCES Vendors (VendorID)
);
GO

PRINT 'Creating the "GLAccounts" Table'

CREATE TABLE dbo.GLAccounts 
(
    AccountNo INT PRIMARY KEY,
    AccountDescription VARCHAR(45) NOT NULL,
);
GO

问题在于约束。外键后的逗号给了我错误以及PRIMARY KEY (VendorID)

标签: sql-serverconstraints

解决方案


只需要在后面添加注释掉的部分

AccountNo INT FOREIGN KEY

并转换为

AccountNo INT FOREIGN KEY REFERENCES Vendors (VendorID)

并删除已定义的约束PRIMARY KEY (VendorID)


推荐阅读