2008-09-05 89 views

回答

67

不幸的是,目前没有对SQL Server CE中的表之间建立关系的设计器支持(与SQL Server 2005不同)。要建立关系,你需要使用SQL命令,如:

ALTER TABLE Orders 
ADD CONSTRAINT FK_Customer_Order 
FOREIGN KEY (CustomerId) REFERENCES Customers(CustomerId) 

如果你正在做CE的发展,我会建议这个常见问题:

编辑:在Visual Studio 2008中,这是现在可以做在GUI上右键单击您的表格。

+2

我相信你遗漏了CONSTRAINT关键字。至少在SQL Server CE 3.5 ... ALTER TABLE Orders ADD CONSTRAINT FK_Customer_Order FOREIGN KEY(CustomerId) 参考客户(客户ID) – Edo 2010-01-03 23:25:31

7

您需要创建一个查询(在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詹森(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1

44

Visual Studio 2008中确实有一个设计师,允许你添加FK的。只需右键单击表格...表格属性,然后进入“添加关系”部分。

HTH

+0

我相信我在使用VS 2005时遇到此问题。很高兴知道你现在可以通过VS 2008中的UI来完成它! – 2009-08-11 16:27:38

3

Alan说他有设计师支持是正确的。当他暗示你不能选择外键表时,Rhywun是不正确的。他的意思是,在用户界面中,外键表格下拉显示为灰色 - 这意味着他没有右键单击正确的表格来添加外键。

总之,右击foriegn键表,然后通过'Table Properties'>'Add Relations'选项选择相关的主键表。

我已经做了很多次,它的工作原理。

+0

感谢罗布,这对我来说是诀窍。 – Spidey 2009-12-16 13:16:29

1
create table employee 
(
    empid int, 
    empname varchar(40), 
    designation varchar(30), 
    hiredate datetime, 
    Bsalary int, 
    depno constraint emp_m foreign key references department(depno) 
) 

我们应该有一个主键来创建两个或多个表之间的外键或关系。

1

我知道这是一个“很长的时间”,因为这个问题首次被问到。以防万一,如果它帮助某人,

MS通过SQL Server Compact Tool Box(https://sqlcetoolbox.codeplex.com/)很好地支持添加关系。只需安装它,然后您就可以选择使用服务器浏览器窗口连接到压缩数据库。右键点击主表,选择“表格属性”。您应该有以下窗口,其中包含“添加关系”选项卡,允许您添加关系。

Add Relations Tab - SQL Server Compact Tool Box

2

Walkthrough: Creating a SQL Server Compact 3.5 Database

要创建在前面的过程

  1. 在服务器资源管理器/数据库资源管理器,展开表中创建的表之间的关系。
  2. 用鼠标右键单击订单表,然后单击表属性。
  3. 单击添加关系。
  4. 在关系名称框中键入FK_Orders_Customers。
  5. 在“外键表列”列表中选择CustomerID。
  6. 单击添加列。
  7. 点击添加关系。
  8. 单击确定以完成该过程并在 数据库中创建关系。
  9. 再次单击确定关闭表格属性对话框。