如何在SQL Server CE(精简版)数据库中创build外键关系?

Visual Studio 2005不提供用于在SQL Server CE数据库中的表之间创build关系的界面(我正在使用3.0版本),而据我所知,您无法使用Management Studio打开Compact Edition DB。 有任何想法吗?

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

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

如果你正在做CE开发,我会推荐这个FAQ:

编辑 :在Visual Studio 2008中现在可以通过右键单击您的表在GUI中执行此操作。

Visual Studio 2008有一个devise器,允许你添加FK的。 只需右键单击表格…表格属性,然后转到“添加关系”部分。

HTH

您需要创build一个查询(在Visual Studio中,右键单击数据库连接 – >新查询)并执行以下SQL:

 ALTER TABLE tblAlpha ADD CONSTRAINT MyConstraint FOREIGN KEY (FK_id) REFERENCES tblGamma(GammaID) ON UPDATE CASCADE 

要validation您的外键是否已创build,请执行以下SQL:

 SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 

感谢E Jensen( http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=532377&SiteID=1

艾伦说他有devise师的支持是正确的。 当他暗示你不能select外键表时,Rhywun是不正确的。 他的意思是,在用户界面的外键下拉是灰色 – 这意味着他没有右键单击正确的表来添加外键。

总之,右键单击foriegn键表,然后通过“表格属性”>“添加关系”选项select相关的主键表。

我做了很多次,它的工作。

演练:创build一个SQL Server Compact 3.5数据库

在上一个过程中创build的表之间创build关系

  1. 在Server Explorer / Database Explorer中,展开Tables。
  2. 用鼠标右键单击订单表,然后单击表格属性。
  3. 点击添加关系。
  4. 在关系名称框中键入FK_Orders_Customers。
  5. 在“外键表列”列表中selectCustomerID。
  6. 点击添加列。
  7. 点击添加关系。
  8. 单击确定以完成该过程并在数据库中创build关系。
  9. 再次单击确定closures表格属性对话框。
 create table employee ( empid int, empname varchar(40), designation varchar(30), hiredate datetime, Bsalary int, depno constraint emp_m foreign key references department(depno) ) 

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

自从这个问题首次被提出以来,我知道这是一个“很长的时间”。 以防万一,如果它帮助某人,

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

添加关系选项卡 -  SQL Server Compact Tool Box