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

有帮助吗?

解决方案

不幸的是,目前没有设计器支持(与 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 有一个允许您添加 FK 的设计器。只需右键单击该表...表属性,然后转到“添加关系”部分。

您需要创建一个查询(在 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)

艾伦说有设计师的支持是正确的。Rhywun 暗示您无法选择外键表,这是不正确的。他的意思是,在用户界面中,外键表下拉列表呈灰色 - 这意味着他没有右键单击正确的表来添加外键。

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

我已经做过很多次而且很有效。

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

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

  1. 在服务器资源管理器/数据库资源管理器中,展开表。
  2. 右键单击“订单”表,然后单击“表属性”。
  3. 单击添加关系。
  4. 在“关系名称”框中键入 FK_Orders_Customers。
  5. 在“外键表列”列表中选择“CustomerID”。
  6. 单击添加列。
  7. 单击添加关系。
  8. 单击确定以完成过程并在数据库中创建关系。
  9. 再次单击“确定”关闭“表属性”对话框。
create table employee
(
   empid int,
   empname varchar(40),
   designation varchar(30),
   hiredate datetime, 
   Bsalary int,
   depno constraint emp_m foreign key references department(depno)
)

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

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

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

Add Relations Tab - SQL Server Compact Tool Box

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top