Visual Studio 2005 не предоставляет интерфейс для создания связей между таблицами в базе данных SQL Server CE (я использую версию 3.0), и вы не можете открыть базу данных Compact Edition с помощью Management Studio, насколько мне известно. Любые идеи?
Как вы создаете отношения внешнего ключа в базе данных SQL Server CE (Compact Edition)?
Ответ 1
К сожалению, в настоящее время нет поддержки дизайнеров (в отличие от SQL Server 2005) для построения связей между таблицами в SQL Server CE. Чтобы строить отношения, вам нужно использовать SQL-команды, например:
ALTER TABLE Orders
ADD CONSTRAINT FK_Customer_Order
FOREIGN KEY (CustomerId) REFERENCES Customers(CustomerId)
Если вы занимаетесь разработкой СЕ, я бы рекомендовал этот FAQ:
EDIT. В Visual Studio 2008 это теперь можно сделать в графическом интерфейсе, щелкнув правой кнопкой мыши по вашей таблице.
Ответ 2
В Visual Studio 2008 есть дизайнер, который позволяет добавлять FK. Просто щелкните правой кнопкой мыши таблицу... Свойства таблицы, затем перейдите в раздел "Добавить отношения".
НТН
Ответ 3
Вам нужно создать запрос (в Visual Studio, щелкните правой кнопкой мыши на соединении DB → New Query) и выполните следующий 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)
Ответ 4
Алан прав, когда говорит о поддержке дизайнера. Rhywun неверен, когда он подразумевает, что вы не можете выбрать таблицу внешнего ключа. То, что он имеет в виду, это то, что в пользовательском интерфейсе таблица внешнего ключа выпадает серым цветом - все это означает, что он не щелкнул правой кнопкой мыши по правильной таблице, чтобы добавить внешний ключ.
Вкратце, щелкните правой кнопкой мыши на таблице ключей foriegn, а затем с помощью опции "Свойства таблицы" > "Добавить отношения" вы выберите соответствующую таблицу первичных ключей.
Я делал это много раз, и это работает.
Ответ 5
Пошаговое руководство: создание базы данных SQL Server Compact 3.5
Чтобы создать связь между таблицами, созданными в предыдущей процедуре
- В проводнике сервера/проводнике базы данных разверните таблицу.
- Щелкните правой кнопкой мыши таблицу "Заказы" и выберите "Свойства таблицы".
- Нажмите "Добавить отношения".
- Введите FK_Orders_Customers в поле "Название отношения".
- Выберите CustomerID в списке столбцов таблицы внешнего ключа.
- Нажмите "Добавить столбцы".
- Нажмите "Добавить связь".
- Нажмите "ОК", чтобы завершить процесс и создать связь в базы данных.
- Нажмите "ОК" еще раз, чтобы закрыть диалоговое окно "Свойства таблицы".
Ответ 6
create table employee
(
empid int,
empname varchar(40),
designation varchar(30),
hiredate datetime,
Bsalary int,
depno constraint emp_m foreign key references department(depno)
)
У нас должен быть первичный ключ для создания внешнего ключа или отношения между двумя или более таблицами.
Ответ 7
Я знаю это "очень долго", так как этот вопрос был задан первым. На всякий случай, если это поможет кому-то,
Добавление отношений хорошо поддерживается MS через SQL Server Compact Tool Box (https://sqlcetoolbox.codeplex.com/). Просто установите его, затем вы получите возможность подключиться к Compact Database, используя окно Server Explorer. Щелкните правой кнопкой мыши на основной таблице, выберите "Свойства таблицы". У вас должно быть следующее окно, содержащее вкладку "Добавить отношения", позволяющее добавлять отношения.