Как создать отношение внешнего ключа в базе данных SQL Server CE (Compact Edition)? - PullRequest
47 голосов
/ 06 сентября 2008

Visual Studio 2005 не предоставляет интерфейс для создания связей между таблицами в базе данных SQL Server CE (я использую версию 3.0), и, насколько я знаю, вы не можете открыть базу данных Compact Edition с помощью Management Studio. Есть идеи?

Ответы [ 7 ]

70 голосов
/ 06 сентября 2008

К сожалению, в настоящее время не поддерживается конструктор (в отличие от 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 это теперь можно сделать в графическом интерфейсе, щелкнув правой кнопкой мыши по таблице.

44 голосов
/ 16 марта 2009

Visual Studio 2008 имеет конструктор, который позволяет добавлять FK. Просто щелкните правой кнопкой мыши таблицу ... Свойства таблицы и перейдите в раздел «Добавить отношения».

7 голосов
/ 06 сентября 2008

Вам необходимо создать запрос (в 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

Кредит E Jensen (http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1)

3 голосов
/ 11 августа 2009

Алан прав, когда говорит, что есть поддержка дизайнеров. Rhywun неверен, когда он подразумевает, что вы не можете выбрать таблицу внешнего ключа. Он имеет в виду, что в пользовательском интерфейсе раскрывающийся список таблиц внешних ключей неактивен - все это означает, что он не щелкнул правой кнопкой мыши на нужной таблице, чтобы добавить внешний ключ.

Таким образом, щелкните правой кнопкой мыши таблицу внешних ключей, а затем с помощью параметра «Свойства таблицы»> «Добавить отношения» выберите соответствующую таблицу первичного ключа.

Я делал это много раз, и это работает.

2 голосов
/ 28 октября 2014

Пошаговое руководство. Создание базы данных SQL Server Compact 3.5

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

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

Я знаю, что это "очень долго", так как этот вопрос был впервые задан. На всякий случай, если кому-то это поможет,

Добавление связей хорошо поддерживается MS через SQL Server Compact Tool Box (https://sqlcetoolbox.codeplex.com/).. Просто установите его, и вы получите возможность подключиться к компактной базе данных с помощью окна обозревателя сервера. выберите «Свойства таблицы». У вас должно появиться следующее окно, которое содержит вкладку «Добавить отношения», позволяющую добавлять отношения.

Add Relations Tab - SQL Server Compact Tool Box

1 голос
/ 03 июня 2013
create table employee
(
   empid int,
   empname varchar(40),
   designation varchar(30),
   hiredate datetime, 
   Bsalary int,
   depno constraint emp_m foreign key references department(depno)
)

У нас должен быть первичный ключ для создания внешнего ключа или связи между двумя или более таблицами.

...