я получаю сообщение об ошибке
Incorrect syntax near ','
и не знаю как исправить.
Я попытался переписать запрос, ссылаясь на старый код, и ничего не работает.
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)
Документы CREATE TABLE показывают, как правильно создавать внешние и первичные ключи. Я понятия не имею, откуда у вас появилась идея сделать это так, как вы пытались.
Просто нужно добавить закомментированную часть после
AccountNo INT FOREIGN KEY
и преобразовать в
AccountNo INT FOREIGN KEY REFERENCES Vendors (VendorID)
и удалить уже определенное ограничение PRIMARY KEY (VendorID)
Подсказка:
REFERENCES
.