Как создать связь внешнего ключа в базе данных SQL Server CE (Compact Edition)?
-
09-06-2019 - |
Вопрос
Visual Studio 2005 не предоставляет интерфейс для создания связей между таблицами в базе данных SQL Server CE (я использую версию 3.0), и, насколько мне известно, вы не можете открыть базу данных Compact Edition с помощью Management Studio.Есть идеи?
Решение
К сожалению, в настоящее время нет дизайнерской поддержки (в отличие от SQL Server 2005) для построения связей между таблицами в SQL Server CE.Для построения отношений вам необходимо использовать команды SQL, такие как:
ALTER TABLE Orders
ADD CONSTRAINT FK_Customer_Order
FOREIGN KEY (CustomerId) REFERENCES Customers(CustomerId)
Если вы занимаетесь разработкой CE, я бы порекомендовал этот FAQ:
РЕДАКТИРОВАТЬ:В Visual Studio 2008 это теперь можно сделать в графическом интерфейсе, щелкнув правой кнопкой мыши таблицу.
Другие советы
Визуальная Студия 2008 делает есть дизайнер, который позволяет добавлять FK.Просто щелкните правой кнопкой мыши по таблице...Свойства таблицы, затем перейдите в раздел «Добавить связи».
Вам необходимо создать запрос (в Visual Studio щелкните правой кнопкой мыши соединение с БД -> Новый запрос) и выполните следующий SQL:
ALTER TABLE tblAlpha
ADD CONSTRAINT MyConstraint FOREIGN KEY (FK_id) REFERENCES
tblGamma(GammaID)
ON UPDATE CASCADE
Чтобы убедиться, что ваш внешний ключ создан, выполните следующий SQL:
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
Благодарим Э. Дженсена (http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1)
Алан прав, когда говорит, что есть поддержка дизайнеров.Райвун ошибается, когда подразумевает, что вы не можете выбрать таблицу внешнего ключа.Он имеет в виду, что в пользовательском интерфейсе раскрывающийся список таблицы внешних ключей неактивен - все это означает, что он не щелкнул правой кнопкой мыши по правильной таблице, чтобы добавить внешний ключ.
Таким образом, щелкните правой кнопкой мыши таблицу внешнего ключа, а затем с помощью параметра «Свойства таблицы»> «Добавить отношения» выберите соответствующую таблицу первичного ключа.
Я делал это много раз, и это работает.
Прохождение:Создание базы данных SQL Server Compact 3.5
Чтобы создать связь между таблицами, созданными в предыдущей процедуре
- В обозревателе серверов/обозревателе баз данных разверните Таблицы.
- Щелкните правой кнопкой мыши таблицу «Заказы» и выберите «Свойства таблицы».
- Нажмите Добавить отношения.
- Введите FK_Orders_Customers в поле Имя связи.
- Выберите CustomerID в списке столбцов таблицы внешних ключей.
- Нажмите «Добавить столбцы».
- Нажмите «Добавить связь».
- Нажмите OK, чтобы завершить процесс и создать отношения в базе данных.
- Нажмите «ОК» еще раз, чтобы закрыть диалоговое окно «Свойства таблицы».
create table employee
(
empid int,
empname varchar(40),
designation varchar(30),
hiredate datetime,
Bsalary int,
depno constraint emp_m foreign key references department(depno)
)
У нас должен быть первичный ключ для создания внешнего ключа или связи между двумя или более таблицами.
Я знаю, что прошло «очень много времени» с тех пор, как этот вопрос был задан впервые.На всякий случай, если это кому-то поможет,
Добавление связей хорошо поддерживается MS через SQL Server Compact Tool Box (https://sqlcetoolbox.codeplex.com/).Просто установите его, и вы получите возможность подключиться к компактной базе данных с помощью окна обозревателя серверов.Щелкните правой кнопкой мыши основную таблицу и выберите «Свойства таблицы».У вас должно появиться следующее окно, содержащее вкладку «Добавить отношения», позволяющую добавлять отношения.