48

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

4

7 回答 7

70

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

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

如果您正在进行 CE 开发,我会推荐这个常见问题解答:

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

于 2008-09-05T20:29:19.893 回答
44

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

于 2009-03-16T15:28:21.837 回答
7

您需要创建一个查询(在 Visual Studio 中,右键单击 DB 连接 -> 新建查询)并执行以下 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 )

于 2008-09-05T20:30:39.530 回答
3

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

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

我已经做过很多次了,而且效果很好。

于 2009-08-11T07:24:20.490 回答
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)
)

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

于 2013-06-03T10:32:08.997 回答
1

我知道自从第一次提出这个问题以来已经“很长时间”了。以防万一,如果它对某人有帮助,

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

添加关系选项卡 - SQL Server Compact 工具箱

于 2014-01-06T02:48:05.853 回答
1

演练:创建 SQL Server Compact 3.5 数据库

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

  1. 在服务器资源管理器/数据库资源管理器中,展开表。
  2. 右键单击订单表,然后单击表属性。
  3. 单击添加关系。
  4. 在关系名称框中键入 FK_Orders_Customers。
  5. 在外键表列列表中选择 CustomerID。
  6. 单击添加列。
  7. 单击添加关系。
  8. 单击确定以完成该过程并在数据库中创建关系。
  9. 再次单击“确定”关闭“表属性”对话框。
于 2014-10-28T04:48:44.213 回答