#sql #sql-server
#sql #sql-server
Вопрос:
Я пытаюсь использовать ключ FK для подключения значений из одной таблицы к существующей таблице внутри SQL
CREATE TABLE tblPurchase
(
PurchaseID int IDENTITY(1,1) PRIMARY KEY,
UserID int,
PIDSizeID nvarchar(MAX),
CartAmount money,
CartDiscount money,
TotalPayed money,
PaymentType nvarchar(50),
PaymentStatus nvarchar(50),
DateOfPurchese datetime,
Name nvarchar(200),
Address nvarchar(MAX),
PinCode nvarchar(10),
MobileNumber nvarchar(50),
CONSTRAINT [FK_tblPurchase_ToUser]
FOREIGN KEY ([UserID]) REFERENCES [tblUsers] ([UID])
)
У меня есть таблица tblUsers
, и я без проблем подключил к ней другие таблицы. Но на этот раз он говорит:
Внешний ключ ‘FK_tblPurchase_ToUser’ ссылается на недопустимую таблицу ‘tblUsers’.
Не удалось создать ограничение или индекс. Смотрите предыдущие ошибки. Есть предложения? единственное, что я пробовал, кроме проверки правописания, — это обновление с помощью Ctrl Shift R…..
Редактировать: имена столбцов, которые я использую в tblUsers
[Uid] [Username] [Password] [Email] [Name] [Usertype]
Редактировать 2: я создал совершенно новую базу данных в SQL Server и просто снова добавил все таблицы, и все работает…. Я не знаю, почему SQL Server время от времени отказывается добавлять таблицы..
Комментарии:
1. Вероятно, разные схемы.
REFERENCES [schema_name].[tblUsers] ([UID])
. Примечание: тег mysql, вероятно, неверен, это должен быть SQL Server / T-SQL2. Ctrl Shift R просто обновляет intellisense, это не приводит к внезапному появлению объектов, которые в настоящее время не существуют. Если ошибка говорит, что она не существует, это не так; у вас опечатка, вы используете неправильную базу данных / схему или таблица действительно не существует.
3. Повторите свой комментарий, если бы вы добавили их все одновременно, вы бы добавили их все в одну и ту же схему и одну и ту же базу данных, одна из которых отличалась при первой попытке.
4. покажите скриншот древовидного представления схемы БД SQLS Management Studio, на котором четко показаны обе таблицы
5. Я предполагаю, что вы, вероятно, неправильно выбрали базу данных в SSMS. Допустим, у вас была выбрана основная база данных в SSMS … вы пытались создать tblPurchase с FK на tblUsers… но tblUsers не существует в основной базе данных, поэтому произошел сбой. Это случалось со мной миллион раз, и я был бы именно таким.