Как создать связь внешнего ключа в базе данных SQL Server CE (Compact Edition)?

StackOverflow https://stackoverflow.com/questions/46827

Вопрос

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

Чтобы создать связь между таблицами, созданными в предыдущей процедуре

  1. В обозревателе серверов/обозревателе баз данных разверните Таблицы.
  2. Щелкните правой кнопкой мыши таблицу «Заказы» и выберите «Свойства таблицы».
  3. Нажмите Добавить отношения.
  4. Введите FK_Orders_Customers в поле Имя связи.
  5. Выберите CustomerID в списке столбцов таблицы внешних ключей.
  6. Нажмите «Добавить столбцы».
  7. Нажмите «Добавить связь».
  8. Нажмите OK, чтобы завершить процесс и создать отношения в базе данных.
  9. Нажмите «ОК» еще раз, чтобы закрыть диалоговое окно «Свойства таблицы».
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/).Просто установите его, и вы получите возможность подключиться к компактной базе данных с помощью окна обозревателя серверов.Щелкните правой кнопкой мыши основную таблицу и выберите «Свойства таблицы».У вас должно появиться следующее окно, содержащее вкладку «Добавить отношения», позволяющую добавлять отношения.

Add Relations Tab - SQL Server Compact Tool Box

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top